diff --git a/LFP_Manager.sln b/LFP_Manager.sln new file mode 100644 index 0000000..d882c2d --- /dev/null +++ b/LFP_Manager.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.33516.290 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LFP_Manager_DBG_Delta", "LFP_Manager\LFP_Manager_DBG_Delta.csproj", "{BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {81A464DF-E944-44BF-80EE-714CAE6FBEDB} + EndGlobalSection +EndGlobal diff --git a/LFP_Manager/AMO_LOGO.ico b/LFP_Manager/AMO_LOGO.ico new file mode 100644 index 0000000..a18b5d2 Binary files /dev/null and b/LFP_Manager/AMO_LOGO.ico differ diff --git a/LFP_Manager/Controls/UcAntiTheftControl.Designer.cs b/LFP_Manager/Controls/UcAntiTheftControl.Designer.cs new file mode 100644 index 0000000..c0b1661 --- /dev/null +++ b/LFP_Manager/Controls/UcAntiTheftControl.Designer.cs @@ -0,0 +1,996 @@ +namespace LFP_Manager.Controls +{ + partial class UcAntiTheftControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.LcMain = new DevExpress.XtraLayout.LayoutControl(); + this.BtnGyroState = new DevExpress.XtraEditors.SimpleButton(); + this.BtnFuncSw = new DevExpress.XtraEditors.SimpleButton(); + this.BtnGyroPolSel = new DevExpress.XtraEditors.SimpleButton(); + this.BtnGyroZAxisSet = new DevExpress.XtraEditors.SimpleButton(); + this.BtnGyroYAxisSet = new DevExpress.XtraEditors.SimpleButton(); + this.BtnGyroXAxisSet = new DevExpress.XtraEditors.SimpleButton(); + this.TeGyroZAxisNew = new DevExpress.XtraEditors.TextEdit(); + this.TeGyroYAxisNew = new DevExpress.XtraEditors.TextEdit(); + this.TeGyroXAxisNew = new DevExpress.XtraEditors.TextEdit(); + this.BtnATCommFuncSwSet = new DevExpress.XtraEditors.SimpleButton(); + this.BtnATCommTimeoutSet = new DevExpress.XtraEditors.SimpleButton(); + this.BtnGyroUnlock = new DevExpress.XtraEditors.SimpleButton(); + this.TeGyroState = new DevExpress.XtraEditors.TextEdit(); + this.TeGyroFunctionSwitch = new DevExpress.XtraEditors.TextEdit(); + this.TeGyroPolSel = new DevExpress.XtraEditors.TextEdit(); + this.TeGyroZAxis = new DevExpress.XtraEditors.TextEdit(); + this.TeGyroYAxis = new DevExpress.XtraEditors.TextEdit(); + this.TeGyroXAxis = new DevExpress.XtraEditors.TextEdit(); + this.TeFunctionSwitch = new DevExpress.XtraEditors.TextEdit(); + this.TeTimeOutSet = new DevExpress.XtraEditors.TextEdit(); + this.TeTimeOutSetNew = new DevExpress.XtraEditors.TextEdit(); + this.TeFunctionSwitchNew = new DevExpress.XtraEditors.TextEdit(); + this.TeGyroPolSelNew = new DevExpress.XtraEditors.TextEdit(); + this.TeGyroFunctionSwitchNew = new DevExpress.XtraEditors.TextEdit(); + this.TeGyroStateNew = new DevExpress.XtraEditors.TextEdit(); + this.Root = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem15 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem16 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem17 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem18 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem19 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem20 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem21 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem22 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem23 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem24 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem25 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem26 = new DevExpress.XtraLayout.LayoutControlItem(); + this.TmrDisplay = new System.Windows.Forms.Timer(this.components); + ((System.ComponentModel.ISupportInitialize)(this.LcMain)).BeginInit(); + this.LcMain.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroZAxisNew.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroYAxisNew.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroXAxisNew.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroState.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroFunctionSwitch.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroPolSel.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroZAxis.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroYAxis.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroXAxis.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeFunctionSwitch.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeTimeOutSet.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeTimeOutSetNew.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeFunctionSwitchNew.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroPolSelNew.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroFunctionSwitchNew.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroStateNew.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem21)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem24)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem25)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem26)).BeginInit(); + this.SuspendLayout(); + // + // LcMain + // + this.LcMain.Controls.Add(this.BtnGyroState); + this.LcMain.Controls.Add(this.BtnFuncSw); + this.LcMain.Controls.Add(this.BtnGyroPolSel); + this.LcMain.Controls.Add(this.BtnGyroZAxisSet); + this.LcMain.Controls.Add(this.BtnGyroYAxisSet); + this.LcMain.Controls.Add(this.BtnGyroXAxisSet); + this.LcMain.Controls.Add(this.TeGyroZAxisNew); + this.LcMain.Controls.Add(this.TeGyroYAxisNew); + this.LcMain.Controls.Add(this.TeGyroXAxisNew); + this.LcMain.Controls.Add(this.BtnATCommFuncSwSet); + this.LcMain.Controls.Add(this.BtnATCommTimeoutSet); + this.LcMain.Controls.Add(this.BtnGyroUnlock); + this.LcMain.Controls.Add(this.TeGyroState); + this.LcMain.Controls.Add(this.TeGyroFunctionSwitch); + this.LcMain.Controls.Add(this.TeGyroPolSel); + this.LcMain.Controls.Add(this.TeGyroZAxis); + this.LcMain.Controls.Add(this.TeGyroYAxis); + this.LcMain.Controls.Add(this.TeGyroXAxis); + this.LcMain.Controls.Add(this.TeFunctionSwitch); + this.LcMain.Controls.Add(this.TeTimeOutSet); + this.LcMain.Controls.Add(this.TeTimeOutSetNew); + this.LcMain.Controls.Add(this.TeFunctionSwitchNew); + this.LcMain.Controls.Add(this.TeGyroPolSelNew); + this.LcMain.Controls.Add(this.TeGyroFunctionSwitchNew); + this.LcMain.Controls.Add(this.TeGyroStateNew); + this.LcMain.Dock = System.Windows.Forms.DockStyle.Fill; + this.LcMain.Location = new System.Drawing.Point(0, 0); + this.LcMain.Name = "LcMain"; + this.LcMain.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1097, 193, 650, 400); + this.LcMain.Root = this.Root; + this.LcMain.Size = new System.Drawing.Size(850, 190); + this.LcMain.TabIndex = 0; + this.LcMain.Text = "layoutControl1"; + // + // BtnGyroState + // + this.BtnGyroState.Enabled = false; + this.BtnGyroState.Location = new System.Drawing.Point(792, 84); + this.BtnGyroState.Name = "BtnGyroState"; + this.BtnGyroState.Size = new System.Drawing.Size(51, 24); + this.BtnGyroState.StyleController = this.LcMain; + this.BtnGyroState.TabIndex = 26; + this.BtnGyroState.Text = "Set"; + this.BtnGyroState.Click += new System.EventHandler(this.BtnGyroState_Click); + // + // BtnFuncSw + // + this.BtnFuncSw.Location = new System.Drawing.Point(792, 56); + this.BtnFuncSw.Name = "BtnFuncSw"; + this.BtnFuncSw.Size = new System.Drawing.Size(51, 24); + this.BtnFuncSw.StyleController = this.LcMain; + this.BtnFuncSw.TabIndex = 25; + this.BtnFuncSw.Text = "Set"; + this.BtnFuncSw.Click += new System.EventHandler(this.BtnFuncSw_Click); + // + // BtnGyroPolSel + // + this.BtnGyroPolSel.Location = new System.Drawing.Point(791, 28); + this.BtnGyroPolSel.Name = "BtnGyroPolSel"; + this.BtnGyroPolSel.Size = new System.Drawing.Size(52, 24); + this.BtnGyroPolSel.StyleController = this.LcMain; + this.BtnGyroPolSel.TabIndex = 24; + this.BtnGyroPolSel.Text = "Set"; + this.BtnGyroPolSel.Click += new System.EventHandler(this.BtnGyroPolSel_Click); + // + // BtnGyroZAxisSet + // + this.BtnGyroZAxisSet.Enabled = false; + this.BtnGyroZAxisSet.Location = new System.Drawing.Point(492, 84); + this.BtnGyroZAxisSet.Name = "BtnGyroZAxisSet"; + this.BtnGyroZAxisSet.Size = new System.Drawing.Size(56, 24); + this.BtnGyroZAxisSet.StyleController = this.LcMain; + this.BtnGyroZAxisSet.TabIndex = 23; + this.BtnGyroZAxisSet.Text = "Set"; + this.BtnGyroZAxisSet.Click += new System.EventHandler(this.BtnGyroZAxisSet_Click); + // + // BtnGyroYAxisSet + // + this.BtnGyroYAxisSet.Enabled = false; + this.BtnGyroYAxisSet.Location = new System.Drawing.Point(492, 56); + this.BtnGyroYAxisSet.Name = "BtnGyroYAxisSet"; + this.BtnGyroYAxisSet.Size = new System.Drawing.Size(56, 24); + this.BtnGyroYAxisSet.StyleController = this.LcMain; + this.BtnGyroYAxisSet.TabIndex = 22; + this.BtnGyroYAxisSet.Text = "Set"; + this.BtnGyroYAxisSet.Click += new System.EventHandler(this.BtnGyroYAxisSet_Click); + // + // BtnGyroXAxisSet + // + this.BtnGyroXAxisSet.Enabled = false; + this.BtnGyroXAxisSet.Location = new System.Drawing.Point(492, 28); + this.BtnGyroXAxisSet.Name = "BtnGyroXAxisSet"; + this.BtnGyroXAxisSet.Size = new System.Drawing.Size(56, 24); + this.BtnGyroXAxisSet.StyleController = this.LcMain; + this.BtnGyroXAxisSet.TabIndex = 21; + this.BtnGyroXAxisSet.Text = "Set"; + this.BtnGyroXAxisSet.Click += new System.EventHandler(this.BtnGyroXAxisSet_Click); + // + // TeGyroZAxisNew + // + this.TeGyroZAxisNew.Location = new System.Drawing.Point(440, 84); + this.TeGyroZAxisNew.Name = "TeGyroZAxisNew"; + this.TeGyroZAxisNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeGyroZAxisNew.Properties.Appearance.Options.UseFont = true; + this.TeGyroZAxisNew.Properties.Appearance.Options.UseTextOptions = true; + this.TeGyroZAxisNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeGyroZAxisNew.Size = new System.Drawing.Size(48, 24); + this.TeGyroZAxisNew.StyleController = this.LcMain; + this.TeGyroZAxisNew.TabIndex = 20; + // + // TeGyroYAxisNew + // + this.TeGyroYAxisNew.Location = new System.Drawing.Point(440, 56); + this.TeGyroYAxisNew.Name = "TeGyroYAxisNew"; + this.TeGyroYAxisNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeGyroYAxisNew.Properties.Appearance.Options.UseFont = true; + this.TeGyroYAxisNew.Properties.Appearance.Options.UseTextOptions = true; + this.TeGyroYAxisNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeGyroYAxisNew.Size = new System.Drawing.Size(48, 24); + this.TeGyroYAxisNew.StyleController = this.LcMain; + this.TeGyroYAxisNew.TabIndex = 19; + // + // TeGyroXAxisNew + // + this.TeGyroXAxisNew.Location = new System.Drawing.Point(440, 28); + this.TeGyroXAxisNew.Name = "TeGyroXAxisNew"; + this.TeGyroXAxisNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeGyroXAxisNew.Properties.Appearance.Options.UseFont = true; + this.TeGyroXAxisNew.Properties.Appearance.Options.UseTextOptions = true; + this.TeGyroXAxisNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeGyroXAxisNew.Size = new System.Drawing.Size(48, 24); + this.TeGyroXAxisNew.StyleController = this.LcMain; + this.TeGyroXAxisNew.TabIndex = 18; + // + // BtnATCommFuncSwSet + // + this.BtnATCommFuncSwSet.Location = new System.Drawing.Point(267, 56); + this.BtnATCommFuncSwSet.Name = "BtnATCommFuncSwSet"; + this.BtnATCommFuncSwSet.Size = new System.Drawing.Size(56, 24); + this.BtnATCommFuncSwSet.StyleController = this.LcMain; + this.BtnATCommFuncSwSet.TabIndex = 17; + this.BtnATCommFuncSwSet.Text = "Set"; + this.BtnATCommFuncSwSet.Click += new System.EventHandler(this.BtnATCommFuncSwSet_Click); + // + // BtnATCommTimeoutSet + // + this.BtnATCommTimeoutSet.Location = new System.Drawing.Point(267, 28); + this.BtnATCommTimeoutSet.Name = "BtnATCommTimeoutSet"; + this.BtnATCommTimeoutSet.Size = new System.Drawing.Size(56, 24); + this.BtnATCommTimeoutSet.StyleController = this.LcMain; + this.BtnATCommTimeoutSet.TabIndex = 16; + this.BtnATCommTimeoutSet.Text = "Set"; + this.BtnATCommTimeoutSet.Click += new System.EventHandler(this.BtnATCommTimeoutSet_Click); + // + // BtnGyroUnlock + // + this.BtnGyroUnlock.Location = new System.Drawing.Point(335, 155); + this.BtnGyroUnlock.Name = "BtnGyroUnlock"; + this.BtnGyroUnlock.Size = new System.Drawing.Size(508, 28); + this.BtnGyroUnlock.StyleController = this.LcMain; + this.BtnGyroUnlock.TabIndex = 15; + this.BtnGyroUnlock.Text = "Anti-Theft Unlock"; + this.BtnGyroUnlock.Click += new System.EventHandler(this.BtnGyroUnlock_Click); + // + // TeGyroState + // + this.TeGyroState.Location = new System.Drawing.Point(693, 84); + this.TeGyroState.Name = "TeGyroState"; + this.TeGyroState.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeGyroState.Properties.Appearance.Options.UseFont = true; + this.TeGyroState.Properties.Appearance.Options.UseTextOptions = true; + this.TeGyroState.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeGyroState.Properties.ReadOnly = true; + this.TeGyroState.Size = new System.Drawing.Size(42, 24); + this.TeGyroState.StyleController = this.LcMain; + this.TeGyroState.TabIndex = 14; + // + // TeGyroFunctionSwitch + // + this.TeGyroFunctionSwitch.Location = new System.Drawing.Point(693, 56); + this.TeGyroFunctionSwitch.Name = "TeGyroFunctionSwitch"; + this.TeGyroFunctionSwitch.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeGyroFunctionSwitch.Properties.Appearance.Options.UseFont = true; + this.TeGyroFunctionSwitch.Properties.Appearance.Options.UseTextOptions = true; + this.TeGyroFunctionSwitch.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeGyroFunctionSwitch.Properties.ReadOnly = true; + this.TeGyroFunctionSwitch.Size = new System.Drawing.Size(42, 24); + this.TeGyroFunctionSwitch.StyleController = this.LcMain; + this.TeGyroFunctionSwitch.TabIndex = 13; + // + // TeGyroPolSel + // + this.TeGyroPolSel.Location = new System.Drawing.Point(693, 28); + this.TeGyroPolSel.Name = "TeGyroPolSel"; + this.TeGyroPolSel.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeGyroPolSel.Properties.Appearance.Options.UseFont = true; + this.TeGyroPolSel.Properties.Appearance.Options.UseTextOptions = true; + this.TeGyroPolSel.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeGyroPolSel.Properties.ReadOnly = true; + this.TeGyroPolSel.Size = new System.Drawing.Size(42, 24); + this.TeGyroPolSel.StyleController = this.LcMain; + this.TeGyroPolSel.TabIndex = 12; + // + // TeGyroZAxis + // + this.TeGyroZAxis.Location = new System.Drawing.Point(390, 84); + this.TeGyroZAxis.Name = "TeGyroZAxis"; + this.TeGyroZAxis.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeGyroZAxis.Properties.Appearance.Options.UseFont = true; + this.TeGyroZAxis.Properties.Appearance.Options.UseTextOptions = true; + this.TeGyroZAxis.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeGyroZAxis.Properties.ReadOnly = true; + this.TeGyroZAxis.Size = new System.Drawing.Size(46, 24); + this.TeGyroZAxis.StyleController = this.LcMain; + this.TeGyroZAxis.TabIndex = 11; + // + // TeGyroYAxis + // + this.TeGyroYAxis.Location = new System.Drawing.Point(390, 56); + this.TeGyroYAxis.Name = "TeGyroYAxis"; + this.TeGyroYAxis.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeGyroYAxis.Properties.Appearance.Options.UseFont = true; + this.TeGyroYAxis.Properties.Appearance.Options.UseTextOptions = true; + this.TeGyroYAxis.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeGyroYAxis.Properties.ReadOnly = true; + this.TeGyroYAxis.Size = new System.Drawing.Size(46, 24); + this.TeGyroYAxis.StyleController = this.LcMain; + this.TeGyroYAxis.TabIndex = 10; + // + // TeGyroXAxis + // + this.TeGyroXAxis.Location = new System.Drawing.Point(390, 28); + this.TeGyroXAxis.Name = "TeGyroXAxis"; + this.TeGyroXAxis.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeGyroXAxis.Properties.Appearance.Options.UseFont = true; + this.TeGyroXAxis.Properties.Appearance.Options.UseTextOptions = true; + this.TeGyroXAxis.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeGyroXAxis.Properties.ReadOnly = true; + this.TeGyroXAxis.Size = new System.Drawing.Size(46, 24); + this.TeGyroXAxis.StyleController = this.LcMain; + this.TeGyroXAxis.TabIndex = 9; + // + // TeFunctionSwitch + // + this.TeFunctionSwitch.Location = new System.Drawing.Point(117, 56); + this.TeFunctionSwitch.Name = "TeFunctionSwitch"; + this.TeFunctionSwitch.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeFunctionSwitch.Properties.Appearance.Options.UseFont = true; + this.TeFunctionSwitch.Properties.Appearance.Options.UseTextOptions = true; + this.TeFunctionSwitch.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeFunctionSwitch.Properties.ReadOnly = true; + this.TeFunctionSwitch.Size = new System.Drawing.Size(66, 24); + this.TeFunctionSwitch.StyleController = this.LcMain; + this.TeFunctionSwitch.TabIndex = 7; + // + // TeTimeOutSet + // + this.TeTimeOutSet.Location = new System.Drawing.Point(117, 28); + this.TeTimeOutSet.Name = "TeTimeOutSet"; + this.TeTimeOutSet.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeTimeOutSet.Properties.Appearance.Options.UseFont = true; + this.TeTimeOutSet.Properties.Appearance.Options.UseTextOptions = true; + this.TeTimeOutSet.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeTimeOutSet.Properties.ReadOnly = true; + this.TeTimeOutSet.Size = new System.Drawing.Size(66, 24); + this.TeTimeOutSet.StyleController = this.LcMain; + this.TeTimeOutSet.TabIndex = 6; + // + // TeTimeOutSetNew + // + this.TeTimeOutSetNew.Location = new System.Drawing.Point(187, 28); + this.TeTimeOutSetNew.Name = "TeTimeOutSetNew"; + this.TeTimeOutSetNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeTimeOutSetNew.Properties.Appearance.Options.UseFont = true; + this.TeTimeOutSetNew.Properties.Appearance.Options.UseTextOptions = true; + this.TeTimeOutSetNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeTimeOutSetNew.Size = new System.Drawing.Size(76, 24); + this.TeTimeOutSetNew.StyleController = this.LcMain; + this.TeTimeOutSetNew.TabIndex = 6; + // + // TeFunctionSwitchNew + // + this.TeFunctionSwitchNew.Location = new System.Drawing.Point(187, 56); + this.TeFunctionSwitchNew.Name = "TeFunctionSwitchNew"; + this.TeFunctionSwitchNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeFunctionSwitchNew.Properties.Appearance.Options.UseFont = true; + this.TeFunctionSwitchNew.Properties.Appearance.Options.UseTextOptions = true; + this.TeFunctionSwitchNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeFunctionSwitchNew.Size = new System.Drawing.Size(76, 24); + this.TeFunctionSwitchNew.StyleController = this.LcMain; + this.TeFunctionSwitchNew.TabIndex = 6; + // + // TeGyroPolSelNew + // + this.TeGyroPolSelNew.Location = new System.Drawing.Point(739, 28); + this.TeGyroPolSelNew.Name = "TeGyroPolSelNew"; + this.TeGyroPolSelNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeGyroPolSelNew.Properties.Appearance.Options.UseFont = true; + this.TeGyroPolSelNew.Properties.Appearance.Options.UseTextOptions = true; + this.TeGyroPolSelNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeGyroPolSelNew.Size = new System.Drawing.Size(48, 24); + this.TeGyroPolSelNew.StyleController = this.LcMain; + this.TeGyroPolSelNew.TabIndex = 12; + // + // TeGyroFunctionSwitchNew + // + this.TeGyroFunctionSwitchNew.Location = new System.Drawing.Point(739, 56); + this.TeGyroFunctionSwitchNew.Name = "TeGyroFunctionSwitchNew"; + this.TeGyroFunctionSwitchNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeGyroFunctionSwitchNew.Properties.Appearance.Options.UseFont = true; + this.TeGyroFunctionSwitchNew.Properties.Appearance.Options.UseTextOptions = true; + this.TeGyroFunctionSwitchNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeGyroFunctionSwitchNew.Size = new System.Drawing.Size(49, 24); + this.TeGyroFunctionSwitchNew.StyleController = this.LcMain; + this.TeGyroFunctionSwitchNew.TabIndex = 12; + // + // TeGyroStateNew + // + this.TeGyroStateNew.Location = new System.Drawing.Point(739, 84); + this.TeGyroStateNew.Name = "TeGyroStateNew"; + this.TeGyroStateNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeGyroStateNew.Properties.Appearance.Options.UseFont = true; + this.TeGyroStateNew.Properties.Appearance.Options.UseTextOptions = true; + this.TeGyroStateNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeGyroStateNew.Size = new System.Drawing.Size(49, 24); + this.TeGyroStateNew.StyleController = this.LcMain; + this.TeGyroStateNew.TabIndex = 12; + // + // Root + // + this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.Root.GroupBordersVisible = false; + this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlGroup1, + this.layoutControlGroup2}); + this.Root.Name = "Root"; + this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.Root.Size = new System.Drawing.Size(850, 190); + this.Root.TextVisible = false; + // + // layoutControlGroup1 + // + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem3, + this.layoutControlItem1, + this.emptySpaceItem1, + this.layoutControlItem11, + this.layoutControlItem12, + this.layoutControlItem13, + this.layoutControlItem14}); + this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup1.Name = "layoutControlGroup1"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup1.Size = new System.Drawing.Size(328, 188); + this.layoutControlGroup1.Text = "Anti-theft (Comm.)"; + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.TeTimeOutSet; + this.layoutControlItem3.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem3.MaxSize = new System.Drawing.Size(0, 28); + this.layoutControlItem3.MinSize = new System.Drawing.Size(180, 28); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(180, 28); + this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem3.Text = " Time Out Setting"; + this.layoutControlItem3.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.layoutControlItem3.TextSize = new System.Drawing.Size(105, 14); + this.layoutControlItem3.TextToControlDistance = 5; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.TeFunctionSwitch; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 28); + this.layoutControlItem1.MaxSize = new System.Drawing.Size(0, 28); + this.layoutControlItem1.MinSize = new System.Drawing.Size(164, 28); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(180, 28); + this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem1.Text = " Functional Switch"; + this.layoutControlItem1.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.layoutControlItem1.TextSize = new System.Drawing.Size(105, 20); + this.layoutControlItem1.TextToControlDistance = 5; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.Location = new System.Drawing.Point(0, 56); + this.emptySpaceItem1.MaxSize = new System.Drawing.Size(320, 0); + this.emptySpaceItem1.MinSize = new System.Drawing.Size(320, 24); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(320, 103); + this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem11 + // + this.layoutControlItem11.Control = this.TeTimeOutSetNew; + this.layoutControlItem11.ControlAlignment = System.Drawing.ContentAlignment.TopLeft; + this.layoutControlItem11.CustomizationFormText = " Set"; + this.layoutControlItem11.Location = new System.Drawing.Point(180, 0); + this.layoutControlItem11.MinSize = new System.Drawing.Size(80, 28); + this.layoutControlItem11.Name = "layoutControlItem11"; + this.layoutControlItem11.Size = new System.Drawing.Size(80, 28); + this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem11.Text = " Time Out Setting"; + this.layoutControlItem11.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem11.TextToControlDistance = 0; + this.layoutControlItem11.TextVisible = false; + // + // layoutControlItem12 + // + this.layoutControlItem12.Control = this.TeFunctionSwitchNew; + this.layoutControlItem12.ControlAlignment = System.Drawing.ContentAlignment.TopLeft; + this.layoutControlItem12.CustomizationFormText = " Set"; + this.layoutControlItem12.Location = new System.Drawing.Point(180, 28); + this.layoutControlItem12.MinSize = new System.Drawing.Size(54, 28); + this.layoutControlItem12.Name = "layoutControlItem12"; + this.layoutControlItem12.Size = new System.Drawing.Size(80, 28); + this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem12.Text = " Time Out Setting"; + this.layoutControlItem12.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem12.TextToControlDistance = 0; + this.layoutControlItem12.TextVisible = false; + // + // layoutControlItem13 + // + this.layoutControlItem13.Control = this.BtnATCommTimeoutSet; + this.layoutControlItem13.CustomizationFormText = " Btn"; + this.layoutControlItem13.Location = new System.Drawing.Point(260, 0); + this.layoutControlItem13.MinSize = new System.Drawing.Size(60, 26); + this.layoutControlItem13.Name = "layoutControlItem13"; + this.layoutControlItem13.Size = new System.Drawing.Size(60, 28); + this.layoutControlItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem13.TextVisible = false; + // + // layoutControlItem14 + // + this.layoutControlItem14.Control = this.BtnATCommFuncSwSet; + this.layoutControlItem14.CustomizationFormText = " Btn"; + this.layoutControlItem14.Location = new System.Drawing.Point(260, 28); + this.layoutControlItem14.MinSize = new System.Drawing.Size(60, 26); + this.layoutControlItem14.Name = "layoutControlItem14"; + this.layoutControlItem14.Size = new System.Drawing.Size(60, 28); + this.layoutControlItem14.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem14.TextVisible = false; + // + // layoutControlGroup2 + // + this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem4, + this.layoutControlItem7, + this.layoutControlItem5, + this.layoutControlItem6, + this.emptySpaceItem2, + this.layoutControlItem8, + this.layoutControlItem9, + this.layoutControlItem10, + this.layoutControlItem15, + this.layoutControlItem16, + this.layoutControlItem17, + this.layoutControlItem18, + this.layoutControlItem19, + this.layoutControlItem20, + this.layoutControlItem21, + this.layoutControlItem22, + this.layoutControlItem23, + this.layoutControlItem24, + this.layoutControlItem25, + this.layoutControlItem26}); + this.layoutControlGroup2.Location = new System.Drawing.Point(328, 0); + this.layoutControlGroup2.Name = "layoutControlGroup2"; + this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup2.Size = new System.Drawing.Size(520, 188); + this.layoutControlGroup2.Text = "Anti-theft (GyroScope)"; + // + // layoutControlItem4 + // + this.layoutControlItem4.Control = this.TeGyroXAxis; + this.layoutControlItem4.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem4.MaxSize = new System.Drawing.Size(105, 28); + this.layoutControlItem4.MinSize = new System.Drawing.Size(105, 28); + this.layoutControlItem4.Name = "layoutControlItem4"; + this.layoutControlItem4.Size = new System.Drawing.Size(105, 28); + this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem4.Text = " X-Axis"; + this.layoutControlItem4.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.layoutControlItem4.TextSize = new System.Drawing.Size(50, 20); + this.layoutControlItem4.TextToControlDistance = 5; + // + // layoutControlItem7 + // + this.layoutControlItem7.Control = this.TeGyroPolSel; + this.layoutControlItem7.Location = new System.Drawing.Point(217, 0); + this.layoutControlItem7.MinSize = new System.Drawing.Size(187, 28); + this.layoutControlItem7.Name = "layoutControlItem7"; + this.layoutControlItem7.Size = new System.Drawing.Size(187, 28); + this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem7.Text = " Gyro Policy Selection"; + this.layoutControlItem7.TextSize = new System.Drawing.Size(129, 14); + // + // layoutControlItem5 + // + this.layoutControlItem5.Control = this.TeGyroYAxis; + this.layoutControlItem5.Location = new System.Drawing.Point(0, 28); + this.layoutControlItem5.MaxSize = new System.Drawing.Size(105, 28); + this.layoutControlItem5.MinSize = new System.Drawing.Size(105, 28); + this.layoutControlItem5.Name = "layoutControlItem5"; + this.layoutControlItem5.Size = new System.Drawing.Size(105, 28); + this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem5.Text = " Y-Axis"; + this.layoutControlItem5.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.layoutControlItem5.TextSize = new System.Drawing.Size(50, 20); + this.layoutControlItem5.TextToControlDistance = 5; + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.TeGyroZAxis; + this.layoutControlItem6.Location = new System.Drawing.Point(0, 56); + this.layoutControlItem6.MaxSize = new System.Drawing.Size(105, 28); + this.layoutControlItem6.MinSize = new System.Drawing.Size(105, 28); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(105, 28); + this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem6.Text = " Z-Axis"; + this.layoutControlItem6.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.layoutControlItem6.TextSize = new System.Drawing.Size(50, 20); + this.layoutControlItem6.TextToControlDistance = 5; + // + // emptySpaceItem2 + // + this.emptySpaceItem2.AllowHotTrack = false; + this.emptySpaceItem2.Location = new System.Drawing.Point(0, 84); + this.emptySpaceItem2.MinSize = new System.Drawing.Size(104, 24); + this.emptySpaceItem2.Name = "emptySpaceItem2"; + this.emptySpaceItem2.Size = new System.Drawing.Size(512, 43); + this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem8 + // + this.layoutControlItem8.Control = this.TeGyroFunctionSwitch; + this.layoutControlItem8.Location = new System.Drawing.Point(217, 28); + this.layoutControlItem8.MinSize = new System.Drawing.Size(187, 28); + this.layoutControlItem8.Name = "layoutControlItem8"; + this.layoutControlItem8.Size = new System.Drawing.Size(187, 28); + this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem8.Text = " Gyro Functional Switch"; + this.layoutControlItem8.TextSize = new System.Drawing.Size(129, 14); + // + // layoutControlItem9 + // + this.layoutControlItem9.Control = this.TeGyroState; + this.layoutControlItem9.Location = new System.Drawing.Point(217, 56); + this.layoutControlItem9.MinSize = new System.Drawing.Size(187, 28); + this.layoutControlItem9.Name = "layoutControlItem9"; + this.layoutControlItem9.Size = new System.Drawing.Size(187, 28); + this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem9.Text = " Gyro State"; + this.layoutControlItem9.TextSize = new System.Drawing.Size(129, 14); + // + // layoutControlItem10 + // + this.layoutControlItem10.Control = this.BtnGyroUnlock; + this.layoutControlItem10.Location = new System.Drawing.Point(0, 127); + this.layoutControlItem10.MaxSize = new System.Drawing.Size(0, 32); + this.layoutControlItem10.MinSize = new System.Drawing.Size(89, 32); + this.layoutControlItem10.Name = "layoutControlItem10"; + this.layoutControlItem10.Size = new System.Drawing.Size(512, 32); + this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem10.TextVisible = false; + // + // layoutControlItem15 + // + this.layoutControlItem15.Control = this.TeGyroXAxisNew; + this.layoutControlItem15.CustomizationFormText = " Set"; + this.layoutControlItem15.Location = new System.Drawing.Point(105, 0); + this.layoutControlItem15.MaxSize = new System.Drawing.Size(52, 0); + this.layoutControlItem15.MinSize = new System.Drawing.Size(52, 28); + this.layoutControlItem15.Name = "layoutControlItem15"; + this.layoutControlItem15.Size = new System.Drawing.Size(52, 28); + this.layoutControlItem15.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem15.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem15.TextVisible = false; + // + // layoutControlItem16 + // + this.layoutControlItem16.Control = this.TeGyroYAxisNew; + this.layoutControlItem16.CustomizationFormText = " Set"; + this.layoutControlItem16.Location = new System.Drawing.Point(105, 28); + this.layoutControlItem16.MaxSize = new System.Drawing.Size(52, 0); + this.layoutControlItem16.MinSize = new System.Drawing.Size(52, 28); + this.layoutControlItem16.Name = "layoutControlItem16"; + this.layoutControlItem16.Size = new System.Drawing.Size(52, 28); + this.layoutControlItem16.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem16.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem16.TextVisible = false; + // + // layoutControlItem17 + // + this.layoutControlItem17.Control = this.TeGyroZAxisNew; + this.layoutControlItem17.CustomizationFormText = " Set"; + this.layoutControlItem17.Location = new System.Drawing.Point(105, 56); + this.layoutControlItem17.MaxSize = new System.Drawing.Size(52, 0); + this.layoutControlItem17.MinSize = new System.Drawing.Size(52, 28); + this.layoutControlItem17.Name = "layoutControlItem17"; + this.layoutControlItem17.Size = new System.Drawing.Size(52, 28); + this.layoutControlItem17.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem17.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem17.TextVisible = false; + // + // layoutControlItem18 + // + this.layoutControlItem18.Control = this.BtnGyroXAxisSet; + this.layoutControlItem18.CustomizationFormText = " Btn"; + this.layoutControlItem18.Location = new System.Drawing.Point(157, 0); + this.layoutControlItem18.MinSize = new System.Drawing.Size(60, 26); + this.layoutControlItem18.Name = "layoutControlItem18"; + this.layoutControlItem18.Size = new System.Drawing.Size(60, 28); + this.layoutControlItem18.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem18.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem18.TextVisible = false; + // + // layoutControlItem19 + // + this.layoutControlItem19.Control = this.BtnGyroYAxisSet; + this.layoutControlItem19.CustomizationFormText = " Btn"; + this.layoutControlItem19.Location = new System.Drawing.Point(157, 28); + this.layoutControlItem19.MinSize = new System.Drawing.Size(60, 26); + this.layoutControlItem19.Name = "layoutControlItem19"; + this.layoutControlItem19.Size = new System.Drawing.Size(60, 28); + this.layoutControlItem19.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem19.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem19.TextVisible = false; + // + // layoutControlItem20 + // + this.layoutControlItem20.Control = this.BtnGyroZAxisSet; + this.layoutControlItem20.CustomizationFormText = " Btn"; + this.layoutControlItem20.Location = new System.Drawing.Point(157, 56); + this.layoutControlItem20.MinSize = new System.Drawing.Size(60, 26); + this.layoutControlItem20.Name = "layoutControlItem20"; + this.layoutControlItem20.Size = new System.Drawing.Size(60, 28); + this.layoutControlItem20.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem20.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem20.TextVisible = false; + // + // layoutControlItem21 + // + this.layoutControlItem21.Control = this.BtnGyroPolSel; + this.layoutControlItem21.CustomizationFormText = " Btn"; + this.layoutControlItem21.Location = new System.Drawing.Point(456, 0); + this.layoutControlItem21.MinSize = new System.Drawing.Size(55, 26); + this.layoutControlItem21.Name = "layoutControlItem21"; + this.layoutControlItem21.Size = new System.Drawing.Size(56, 28); + this.layoutControlItem21.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem21.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem21.TextVisible = false; + // + // layoutControlItem22 + // + this.layoutControlItem22.Control = this.TeGyroPolSelNew; + this.layoutControlItem22.ControlAlignment = System.Drawing.ContentAlignment.TopLeft; + this.layoutControlItem22.CustomizationFormText = " Set"; + this.layoutControlItem22.Location = new System.Drawing.Point(404, 0); + this.layoutControlItem22.MaxSize = new System.Drawing.Size(52, 0); + this.layoutControlItem22.MinSize = new System.Drawing.Size(52, 28); + this.layoutControlItem22.Name = "layoutControlItem22"; + this.layoutControlItem22.Size = new System.Drawing.Size(52, 28); + this.layoutControlItem22.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem22.Text = " Gyro Policy Selection"; + this.layoutControlItem22.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem22.TextVisible = false; + // + // layoutControlItem23 + // + this.layoutControlItem23.Control = this.TeGyroFunctionSwitchNew; + this.layoutControlItem23.ControlAlignment = System.Drawing.ContentAlignment.TopLeft; + this.layoutControlItem23.CustomizationFormText = " Set"; + this.layoutControlItem23.Location = new System.Drawing.Point(404, 28); + this.layoutControlItem23.MinSize = new System.Drawing.Size(52, 28); + this.layoutControlItem23.Name = "layoutControlItem23"; + this.layoutControlItem23.Size = new System.Drawing.Size(53, 28); + this.layoutControlItem23.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem23.Text = " Gyro Policy Selection"; + this.layoutControlItem23.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem23.TextVisible = false; + // + // layoutControlItem24 + // + this.layoutControlItem24.Control = this.TeGyroStateNew; + this.layoutControlItem24.ControlAlignment = System.Drawing.ContentAlignment.TopLeft; + this.layoutControlItem24.CustomizationFormText = " Set"; + this.layoutControlItem24.Location = new System.Drawing.Point(404, 56); + this.layoutControlItem24.MinSize = new System.Drawing.Size(52, 28); + this.layoutControlItem24.Name = "layoutControlItem24"; + this.layoutControlItem24.Size = new System.Drawing.Size(53, 28); + this.layoutControlItem24.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem24.Text = " Gyro Policy Selection"; + this.layoutControlItem24.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem24.TextVisible = false; + // + // layoutControlItem25 + // + this.layoutControlItem25.Control = this.BtnFuncSw; + this.layoutControlItem25.CustomizationFormText = " Btn"; + this.layoutControlItem25.Location = new System.Drawing.Point(457, 28); + this.layoutControlItem25.MinSize = new System.Drawing.Size(55, 26); + this.layoutControlItem25.Name = "layoutControlItem25"; + this.layoutControlItem25.Size = new System.Drawing.Size(55, 28); + this.layoutControlItem25.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem25.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem25.TextVisible = false; + // + // layoutControlItem26 + // + this.layoutControlItem26.Control = this.BtnGyroState; + this.layoutControlItem26.CustomizationFormText = " Btn"; + this.layoutControlItem26.Location = new System.Drawing.Point(457, 56); + this.layoutControlItem26.MinSize = new System.Drawing.Size(55, 26); + this.layoutControlItem26.Name = "layoutControlItem26"; + this.layoutControlItem26.Size = new System.Drawing.Size(55, 28); + this.layoutControlItem26.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem26.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem26.TextVisible = false; + // + // TmrDisplay + // + this.TmrDisplay.Interval = 500; + this.TmrDisplay.Tick += new System.EventHandler(this.TmrDisplay_Tick); + // + // UcAntiTheftControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.LcMain); + this.Name = "UcAntiTheftControl"; + this.Size = new System.Drawing.Size(850, 190); + ((System.ComponentModel.ISupportInitialize)(this.LcMain)).EndInit(); + this.LcMain.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroZAxisNew.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroYAxisNew.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroXAxisNew.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroState.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroFunctionSwitch.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroPolSel.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroZAxis.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroYAxis.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroXAxis.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeFunctionSwitch.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeTimeOutSet.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeTimeOutSetNew.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeFunctionSwitchNew.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroPolSelNew.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroFunctionSwitchNew.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeGyroStateNew.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem21)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem24)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem25)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem26)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl LcMain; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private DevExpress.XtraEditors.TextEdit TeTimeOutSet; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraEditors.TextEdit TeFunctionSwitch; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraEditors.SimpleButton BtnGyroUnlock; + private DevExpress.XtraEditors.TextEdit TeGyroState; + private DevExpress.XtraEditors.TextEdit TeGyroFunctionSwitch; + private DevExpress.XtraEditors.TextEdit TeGyroPolSel; + private DevExpress.XtraEditors.TextEdit TeGyroZAxis; + private DevExpress.XtraEditors.TextEdit TeGyroYAxis; + private DevExpress.XtraEditors.TextEdit TeGyroXAxis; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10; + private System.Windows.Forms.Timer TmrDisplay; + private DevExpress.XtraEditors.SimpleButton BtnATCommFuncSwSet; + private DevExpress.XtraEditors.SimpleButton BtnATCommTimeoutSet; + private DevExpress.XtraEditors.TextEdit TeTimeOutSetNew; + private DevExpress.XtraEditors.TextEdit TeFunctionSwitchNew; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14; + private DevExpress.XtraEditors.TextEdit TeGyroZAxisNew; + private DevExpress.XtraEditors.TextEdit TeGyroYAxisNew; + private DevExpress.XtraEditors.TextEdit TeGyroXAxisNew; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem15; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem16; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem17; + private DevExpress.XtraEditors.SimpleButton BtnGyroZAxisSet; + private DevExpress.XtraEditors.SimpleButton BtnGyroYAxisSet; + private DevExpress.XtraEditors.SimpleButton BtnGyroXAxisSet; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem18; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem19; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem20; + private DevExpress.XtraEditors.SimpleButton BtnGyroPolSel; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem21; + private DevExpress.XtraEditors.TextEdit TeGyroPolSelNew; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem22; + private DevExpress.XtraEditors.TextEdit TeGyroFunctionSwitchNew; + private DevExpress.XtraEditors.TextEdit TeGyroStateNew; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem23; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem24; + private DevExpress.XtraEditors.SimpleButton BtnGyroState; + private DevExpress.XtraEditors.SimpleButton BtnFuncSw; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem25; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem26; + } +} diff --git a/LFP_Manager/Controls/UcAntiTheftControl.cs b/LFP_Manager/Controls/UcAntiTheftControl.cs new file mode 100644 index 0000000..7f8c157 --- /dev/null +++ b/LFP_Manager/Controls/UcAntiTheftControl.cs @@ -0,0 +1,285 @@ +using DevExpress.XtraEditors; +using DevExpress.XtraRichEdit.Import.Doc; +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using static DevExpress.Xpo.Helpers.AssociatedCollectionCriteriaHelper; + +namespace LFP_Manager.Controls +{ + public partial class UcAntiTheftControl : DevExpress.XtraEditors.XtraUserControl + { + #region DELEGATE + + public delegate void setCalibUpdate(object sender); + public delegate void setCalibCommand(int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib); + public delegate Int32 getBattData(int item, int cno); + + #endregion + + #region VARIABLES + + private int SystemId = 0; + private const int CALC_INDEX = 6; + + private DeviceParamData rParam; + + private DeviceCalibration rCalib; + private DeviceCalibration wCalib; + + public event setCalibCommand OnCommand = null; + public event getBattData OnGetBattData = null; + + public event SendDataUartEvent OnSendUartData = null; + + #endregion + + #region CONSTRUCTORS + public UcAntiTheftControl() + { + InitializeComponent(); + + TmrDisplay.Enabled = true; + } + #endregion + + #region EXT EVENT FUNCTION + + private void OnCommnadEvent(int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib) + { + OnCommand?.Invoke(mode, index, flag, ref aParam, ref aCalib); + } + + private Int32 OnGetBattDataEvent(int item, int cno) + { + Int32 result = 0; + + if (OnGetBattData != null) + { + result = OnGetBattData(item, cno); + } + return result; + } + + #endregion + + #region PUBLIC FUCTIONS + + public void UpdateData(int sId, DeviceCalibration aCalib) + { + SystemId = sId; + rCalib = aCalib; + } + + #endregion + + #region DISPLAY DATA + + private void DisplayAntiTheft() + { + if (rCalib != null) + { + TeTimeOutSet.Text = string.Format("{0}", rCalib.AntiTheftComm.TimeOut); + TeFunctionSwitch.Text = string.Format("{0}", rCalib.AntiTheftComm.FuncSwitch); + + TeGyroXAxis.Text = string.Format("{0}", rCalib.AntiTheftGyro.XAxis); + TeGyroYAxis.Text = string.Format("{0}", rCalib.AntiTheftGyro.YAxis); + TeGyroZAxis.Text = string.Format("{0}", rCalib.AntiTheftGyro.ZAxis); + + TeGyroPolSel.Text = string.Format("{0}", rCalib.AntiTheftGyro.GyroPolicySel); + TeGyroFunctionSwitch.Text = string.Format("{0}", rCalib.AntiTheftGyro.GyroFuncSwitch); + TeGyroState.Text = string.Format("{0}", rCalib.AntiTheftGyro.GyroState); + } + } + + #endregion + + #region BUTTON EVENT + private void BtnCommUnlock_Click(object sender, EventArgs e) + { + AntiTheftCommParamWrite(0x3001, 0); + } + + private void BtnATCommTimeoutSet_Click(object sender, EventArgs e) + { + if (TeTimeOutSetNew.Text != "") + { + int tmp = Convert.ToInt32(TeTimeOutSetNew.Text); + AntiTheftCommParamWrite(0x3000, tmp); + } + } + + private void BtnATCommFuncSwSet_Click(object sender, EventArgs e) + { + if (TeFunctionSwitchNew.Text != "") + { + int tmp = Convert.ToInt32(TeFunctionSwitchNew.Text); + AntiTheftCommParamWrite(0x3002, tmp); + } + } + + private void BtnGyroUnlock_Click(object sender, EventArgs e) + { + GyroScopeParamWrite(0x4007, 1); + } + + private void MultiDateWriteCmd(ushort addr, int data, int len) + { + byte[] crc; + int i = 0; + // Normal mode --> Bootloader mode + byte[] sdata = new byte[7 + 2 + 2]; + + sdata[i++] = (byte)SystemId; // Device ID + sdata[i++] = (byte)CsSerialCommFunctionDelta.PRESET_MULTI_REG; // Command + sdata[i++] = (byte)(addr >> 8); // Write Register Address MSB + sdata[i++] = (byte)(addr >> 0); // Write Register Address LSB + sdata[i++] = (byte)(1 >> 8); // Write Count of Register MSB + sdata[i++] = (byte)(1 >> 0); // Write Count of Register LSB + sdata[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)] + + sdata[i++] = (byte)(data >> 8); + sdata[i++] = (byte)(data >> 0); + + crc = CsSerialCommFunctionDelta.GetCRC(sdata, i); + + sdata[i++] = crc[0]; // CRCH + sdata[i++] = crc[1]; // CRCL + + OnSendUartData?.Invoke(addr, sdata, false, 1); + } + + private void BtnGyroXAxisSet_Click(object sender, EventArgs e) + { + if (TeGyroXAxisNew.Text != "") + { + int tmp = Convert.ToInt32(TeGyroXAxisNew.Text); + wCalib = rCalib.DeepCopy(); + wCalib.AntiTheftGyro.XAxis = tmp; + OnCommand?.Invoke(26, CALC_INDEX, 1, ref rParam, ref wCalib); + } + } + + private void BtnGyroYAxisSet_Click(object sender, EventArgs e) + { + if (TeGyroYAxisNew.Text != "") + { + int tmp = Convert.ToInt32(TeGyroYAxisNew.Text); + wCalib = rCalib.DeepCopy(); + wCalib.AntiTheftGyro.YAxis = tmp; + OnCommand?.Invoke(27, CALC_INDEX, 1, ref rParam, ref wCalib); + } + } + + private void BtnGyroZAxisSet_Click(object sender, EventArgs e) + { + if (TeGyroZAxisNew.Text != "") + { + int tmp = Convert.ToInt32(TeGyroZAxisNew.Text); + wCalib = rCalib.DeepCopy(); + wCalib.AntiTheftGyro.ZAxis = tmp; + OnCommand?.Invoke(28, CALC_INDEX, 1, ref rParam, ref wCalib); + } + } + + private void GyroScopeParamWrite(ushort waddr, int data) + { + byte[] crc; + ushort raddr = 0x4000; + int i = 0; + // Normal mode --> Bootloader mode + byte[] sdata = new byte[11 + 2 + 2]; + + sdata[i++] = (byte)SystemId; // Device ID + sdata[i++] = (byte)CsSerialCommFunctionDelta.READ_WRITE_REG; // Command + sdata[i++] = (byte)(raddr >> 8); // Read Register Address MSB + sdata[i++] = (byte)(raddr >> 0); // Read Register Address LSB + sdata[i++] = (byte)(7 >> 8); // Read Count of Register MSB + sdata[i++] = (byte)(7 >> 0); // Read Count of Register LSB + sdata[i++] = (byte)(waddr >> 8); // Write Register Address MSB + sdata[i++] = (byte)(waddr >> 0); // Write Register Address LSB + sdata[i++] = (byte)(1 >> 8); // Write Count of Register MSB + sdata[i++] = (byte)(1 >> 0); // Write Count of Register LSB + sdata[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)] + + sdata[i++] = (byte)(data >> 8); + sdata[i++] = (byte)(data >> 0); + + crc = CsSerialCommFunctionDelta.GetCRC(sdata, i); + + sdata[i++] = crc[1]; // CRCH + sdata[i++] = crc[0]; // CRCL + + OnSendUartData?.Invoke((ushort)SystemId, sdata, false, 1); + } + + private void AntiTheftCommParamWrite(ushort waddr, int data) + { + byte[] crc; + ushort raddr = 0x3000; + int i = 0; + // Normal mode --> Bootloader mode + byte[] sdata = new byte[11 + 2 + 2]; + + sdata[i++] = (byte)SystemId; // Device ID + sdata[i++] = (byte)CsSerialCommFunctionDelta.READ_WRITE_REG; // Command + sdata[i++] = (byte)(raddr >> 8); // Read Register Address MSB + sdata[i++] = (byte)(raddr >> 0); // Read Register Address LSB + sdata[i++] = (byte)(3 >> 8); // Read Count of Register MSB + sdata[i++] = (byte)(3 >> 0); // Read Count of Register LSB + sdata[i++] = (byte)(waddr >> 8); // Write Register Address MSB + sdata[i++] = (byte)(waddr >> 0); // Write Register Address LSB + sdata[i++] = (byte)(1 >> 8); // Write Count of Register MSB + sdata[i++] = (byte)(1 >> 0); // Write Count of Register LSB + sdata[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)] + + sdata[i++] = (byte)(data >> 8); + sdata[i++] = (byte)(data >> 0); + + crc = CsSerialCommFunctionDelta.GetCRC(sdata, i); + + sdata[i++] = crc[1]; // CRCH + sdata[i++] = crc[0]; // CRCL + + OnSendUartData?.Invoke((ushort)SystemId, sdata, false, 1); + } + + private void BtnGyroPolSel_Click(object sender, EventArgs e) + { + if (TeGyroPolSelNew.Text != "") + { + int tmp = Convert.ToInt32(TeGyroPolSelNew.Text); + GyroScopeParamWrite(0x4003, tmp); + } + } + + private void BtnFuncSw_Click(object sender, EventArgs e) + { + if (TeGyroFunctionSwitchNew.Text != "") + { + int tmp = Convert.ToInt32(TeGyroFunctionSwitchNew.Text); + GyroScopeParamWrite(0x4004, tmp); + } + } + + private void BtnGyroState_Click(object sender, EventArgs e) + { + } + #endregion + + #region TIMER EVENT + private void TmrDisplay_Tick(object sender, EventArgs e) + { + DisplayAntiTheft(); + } + #endregion + } +} diff --git a/LFP_Manager/Controls/UcAntiTheftControl.resx b/LFP_Manager/Controls/UcAntiTheftControl.resx new file mode 100644 index 0000000..c9162a8 --- /dev/null +++ b/LFP_Manager/Controls/UcAntiTheftControl.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/LFP_Manager/Controls/ucCalibration.Designer.cs b/LFP_Manager/Controls/ucCalibration.Designer.cs new file mode 100644 index 0000000..fa2bd9b --- /dev/null +++ b/LFP_Manager/Controls/ucCalibration.Designer.cs @@ -0,0 +1,1210 @@ +namespace LFP_Manager.Controls +{ + partial class ucCalibration + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.TeCommTimeoutNew = new DevExpress.XtraEditors.TextEdit(); + this.BtnRS485TimeoutSet = new DevExpress.XtraEditors.SimpleButton(); + this.TeCommTimeout = new DevExpress.XtraEditors.TextEdit(); + this.BtnAntiTheftEnable = new DevExpress.XtraEditors.SimpleButton(); + this.BtnClearAntiTheftProtect = new DevExpress.XtraEditors.SimpleButton(); + this.BtnAntiTheftDisable = new DevExpress.XtraEditors.SimpleButton(); + this.gbBmsDateTime = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl(); + this.BtnGetCurrTime = new DevExpress.XtraEditors.SimpleButton(); + this.BtnBmsDateTimeSet = new DevExpress.XtraEditors.SimpleButton(); + this.TeCurrDateTime = new DevExpress.XtraEditors.TextEdit(); + this.TeNewDateTime = new DevExpress.XtraEditors.TextEdit(); + this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.emptySpaceItem4 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem(); + this.gbChaModeControl = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl(); + this.TeChgModeValueNew = new DevExpress.XtraEditors.TextEdit(); + this.TeChgModeValueCurr = new DevExpress.XtraEditors.TextEdit(); + this.CbNewChaMode = new DevExpress.XtraEditors.ComboBoxEdit(); + this.BtnChaModeSet = new DevExpress.XtraEditors.SimpleButton(); + this.TeChaMode = new DevExpress.XtraEditors.TextEdit(); + this.Root = new DevExpress.XtraLayout.LayoutControlGroup(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + this.simpleLabelItem3 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem(); + this.gbCapacityControl = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl7 = new DevExpress.XtraLayout.LayoutControl(); + this.teNewSoc = new DevExpress.XtraEditors.TextEdit(); + this.teCurrSoc = new DevExpress.XtraEditors.TextEdit(); + this.teNewCapacity = new DevExpress.XtraEditors.TextEdit(); + this.btnCapacitySet = new DevExpress.XtraEditors.SimpleButton(); + this.teCurrCapacity = new DevExpress.XtraEditors.TextEdit(); + this.layoutControlGroup7 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.lcitemDesignCapacity = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem12 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.emptySpaceItem13 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem25 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.simpleLabelItem1 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.simpleLabelItem2 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.TeAntiTheftGyroCurr = new DevExpress.XtraEditors.TextEdit(); + this.TeSensitive = new DevExpress.XtraEditors.TextEdit(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem19 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.emptySpaceItem6 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem17 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem21 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem20 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem15 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem23 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem18 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem7 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem16 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem22 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem8 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.emptySpaceItem5 = new DevExpress.XtraLayout.EmptySpaceItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.TeCommTimeoutNew.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeCommTimeout.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbBmsDateTime)).BeginInit(); + this.gbBmsDateTime.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit(); + this.layoutControl3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.TeCurrDateTime.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeNewDateTime.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbChaModeControl)).BeginInit(); + this.gbChaModeControl.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit(); + this.layoutControl2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.TeChgModeValueNew.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeChgModeValueCurr.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.CbNewChaMode.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeChaMode.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbCapacityControl)).BeginInit(); + this.gbCapacityControl.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl7)).BeginInit(); + this.layoutControl7.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.teNewSoc.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.teCurrSoc.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.teNewCapacity.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.teCurrCapacity.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemDesignCapacity)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem13)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem25)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeAntiTheftGyroCurr.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeSensitive.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem21)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem5)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.TeCommTimeoutNew); + this.layoutControl1.Controls.Add(this.BtnRS485TimeoutSet); + this.layoutControl1.Controls.Add(this.TeCommTimeout); + this.layoutControl1.Controls.Add(this.BtnAntiTheftEnable); + this.layoutControl1.Controls.Add(this.BtnClearAntiTheftProtect); + this.layoutControl1.Controls.Add(this.BtnAntiTheftDisable); + this.layoutControl1.Controls.Add(this.gbBmsDateTime); + this.layoutControl1.Controls.Add(this.gbChaModeControl); + this.layoutControl1.Controls.Add(this.gbCapacityControl); + this.layoutControl1.Controls.Add(this.TeAntiTheftGyroCurr); + this.layoutControl1.Controls.Add(this.TeSensitive); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(881, 251, 815, 497); + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(838, 406); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // TeCommTimeoutNew + // + this.TeCommTimeoutNew.Location = new System.Drawing.Point(472, 237); + this.TeCommTimeoutNew.Name = "TeCommTimeoutNew"; + this.TeCommTimeoutNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeCommTimeoutNew.Properties.Appearance.Options.UseFont = true; + this.TeCommTimeoutNew.Properties.Appearance.Options.UseTextOptions = true; + this.TeCommTimeoutNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeCommTimeoutNew.Size = new System.Drawing.Size(80, 24); + this.TeCommTimeoutNew.StyleController = this.layoutControl1; + this.TeCommTimeoutNew.TabIndex = 20; + // + // BtnRS485TimeoutSet + // + this.BtnRS485TimeoutSet.Location = new System.Drawing.Point(480, 370); + this.BtnRS485TimeoutSet.Name = "BtnRS485TimeoutSet"; + this.BtnRS485TimeoutSet.Size = new System.Drawing.Size(72, 30); + this.BtnRS485TimeoutSet.StyleController = this.layoutControl1; + this.BtnRS485TimeoutSet.TabIndex = 19; + this.BtnRS485TimeoutSet.Text = "Set"; + this.BtnRS485TimeoutSet.Click += new System.EventHandler(this.BtnRS485TimeoutSet_Click); + // + // TeCommTimeout + // + this.TeCommTimeout.Location = new System.Drawing.Point(397, 237); + this.TeCommTimeout.Name = "TeCommTimeout"; + this.TeCommTimeout.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeCommTimeout.Properties.Appearance.Options.UseFont = true; + this.TeCommTimeout.Properties.Appearance.Options.UseTextOptions = true; + this.TeCommTimeout.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeCommTimeout.Properties.ReadOnly = true; + this.TeCommTimeout.Size = new System.Drawing.Size(71, 24); + this.TeCommTimeout.StyleController = this.layoutControl1; + this.TeCommTimeout.TabIndex = 18; + // + // BtnAntiTheftEnable + // + this.BtnAntiTheftEnable.Location = new System.Drawing.Point(109, 370); + this.BtnAntiTheftEnable.Name = "BtnAntiTheftEnable"; + this.BtnAntiTheftEnable.Size = new System.Drawing.Size(85, 30); + this.BtnAntiTheftEnable.StyleController = this.layoutControl1; + this.BtnAntiTheftEnable.TabIndex = 17; + this.BtnAntiTheftEnable.Text = "Enable"; + this.BtnAntiTheftEnable.Click += new System.EventHandler(this.BtnAntiTheftEnable_Click); + // + // BtnClearAntiTheftProtect + // + this.BtnClearAntiTheftProtect.Location = new System.Drawing.Point(6, 370); + this.BtnClearAntiTheftProtect.Name = "BtnClearAntiTheftProtect"; + this.BtnClearAntiTheftProtect.Size = new System.Drawing.Size(99, 30); + this.BtnClearAntiTheftProtect.StyleController = this.layoutControl1; + this.BtnClearAntiTheftProtect.TabIndex = 16; + this.BtnClearAntiTheftProtect.Text = "Clear Protect"; + this.BtnClearAntiTheftProtect.Click += new System.EventHandler(this.BtnClearAntiTheftProtect_Click); + // + // BtnAntiTheftDisable + // + this.BtnAntiTheftDisable.Location = new System.Drawing.Point(198, 370); + this.BtnAntiTheftDisable.Name = "BtnAntiTheftDisable"; + this.BtnAntiTheftDisable.Size = new System.Drawing.Size(82, 30); + this.BtnAntiTheftDisable.StyleController = this.layoutControl1; + this.BtnAntiTheftDisable.TabIndex = 15; + this.BtnAntiTheftDisable.Text = "Disable"; + this.BtnAntiTheftDisable.Click += new System.EventHandler(this.BtnAntiTheftDisable_Click); + // + // gbBmsDateTime + // + this.gbBmsDateTime.Controls.Add(this.layoutControl3); + this.gbBmsDateTime.Location = new System.Drawing.Point(560, 2); + this.gbBmsDateTime.Name = "gbBmsDateTime"; + this.gbBmsDateTime.Size = new System.Drawing.Size(276, 206); + this.gbBmsDateTime.TabIndex = 12; + this.gbBmsDateTime.Text = "BMS DateTime"; + // + // layoutControl3 + // + this.layoutControl3.Controls.Add(this.BtnGetCurrTime); + this.layoutControl3.Controls.Add(this.BtnBmsDateTimeSet); + this.layoutControl3.Controls.Add(this.TeCurrDateTime); + this.layoutControl3.Controls.Add(this.TeNewDateTime); + this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl3.Location = new System.Drawing.Point(2, 23); + this.layoutControl3.Name = "layoutControl3"; + this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1137, 0, 650, 400); + this.layoutControl3.Root = this.layoutControlGroup2; + this.layoutControl3.Size = new System.Drawing.Size(272, 181); + this.layoutControl3.TabIndex = 0; + this.layoutControl3.Text = "layoutControl3"; + // + // BtnGetCurrTime + // + this.BtnGetCurrTime.Location = new System.Drawing.Point(107, 148); + this.BtnGetCurrTime.Name = "BtnGetCurrTime"; + this.BtnGetCurrTime.Size = new System.Drawing.Size(90, 30); + this.BtnGetCurrTime.StyleController = this.layoutControl3; + this.BtnGetCurrTime.TabIndex = 14; + this.BtnGetCurrTime.Text = "Get RealTime"; + this.BtnGetCurrTime.Click += new System.EventHandler(this.BtnGetCurrTime_Click); + // + // BtnBmsDateTimeSet + // + this.BtnBmsDateTimeSet.Location = new System.Drawing.Point(201, 148); + this.BtnBmsDateTimeSet.Name = "BtnBmsDateTimeSet"; + this.BtnBmsDateTimeSet.Size = new System.Drawing.Size(68, 30); + this.BtnBmsDateTimeSet.StyleController = this.layoutControl3; + this.BtnBmsDateTimeSet.TabIndex = 13; + this.BtnBmsDateTimeSet.Text = "Set"; + this.BtnBmsDateTimeSet.Click += new System.EventHandler(this.BtnBmsDateTimeSet_Click); + // + // TeCurrDateTime + // + this.TeCurrDateTime.Location = new System.Drawing.Point(60, 3); + this.TeCurrDateTime.Name = "TeCurrDateTime"; + this.TeCurrDateTime.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeCurrDateTime.Properties.Appearance.Options.UseFont = true; + this.TeCurrDateTime.Properties.Appearance.Options.UseTextOptions = true; + this.TeCurrDateTime.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeCurrDateTime.Properties.ReadOnly = true; + this.TeCurrDateTime.Size = new System.Drawing.Size(209, 24); + this.TeCurrDateTime.StyleController = this.layoutControl3; + this.TeCurrDateTime.TabIndex = 10; + // + // TeNewDateTime + // + this.TeNewDateTime.Location = new System.Drawing.Point(60, 31); + this.TeNewDateTime.Name = "TeNewDateTime"; + this.TeNewDateTime.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeNewDateTime.Properties.Appearance.Options.UseFont = true; + this.TeNewDateTime.Properties.Appearance.Options.UseTextOptions = true; + this.TeNewDateTime.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeNewDateTime.Size = new System.Drawing.Size(209, 24); + this.TeNewDateTime.StyleController = this.layoutControl3; + this.TeNewDateTime.TabIndex = 10; + // + // layoutControlGroup2 + // + this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup2.GroupBordersVisible = false; + this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem9, + this.layoutControlItem10, + this.emptySpaceItem3, + this.emptySpaceItem4, + this.layoutControlItem11, + this.layoutControlItem12}); + this.layoutControlGroup2.Name = "Root"; + this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup2.Size = new System.Drawing.Size(272, 181); + this.layoutControlGroup2.TextVisible = false; + // + // layoutControlItem9 + // + this.layoutControlItem9.Control = this.TeCurrDateTime; + this.layoutControlItem9.ControlAlignment = System.Drawing.ContentAlignment.TopLeft; + this.layoutControlItem9.CustomizationFormText = "Curr DateTime"; + this.layoutControlItem9.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem9.Name = "layoutControlItem9"; + this.layoutControlItem9.Size = new System.Drawing.Size(270, 28); + this.layoutControlItem9.Text = " Current"; + this.layoutControlItem9.TextSize = new System.Drawing.Size(45, 14); + // + // layoutControlItem10 + // + this.layoutControlItem10.Control = this.TeNewDateTime; + this.layoutControlItem10.ControlAlignment = System.Drawing.ContentAlignment.TopLeft; + this.layoutControlItem10.CustomizationFormText = "New DateTime"; + this.layoutControlItem10.Location = new System.Drawing.Point(0, 28); + this.layoutControlItem10.Name = "layoutControlItem10"; + this.layoutControlItem10.Size = new System.Drawing.Size(270, 28); + this.layoutControlItem10.Text = " New"; + this.layoutControlItem10.TextSize = new System.Drawing.Size(45, 14); + // + // emptySpaceItem3 + // + this.emptySpaceItem3.AllowHotTrack = false; + this.emptySpaceItem3.Location = new System.Drawing.Point(0, 56); + this.emptySpaceItem3.MinSize = new System.Drawing.Size(104, 24); + this.emptySpaceItem3.Name = "emptySpaceItem3"; + this.emptySpaceItem3.Size = new System.Drawing.Size(270, 89); + this.emptySpaceItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem3.TextSize = new System.Drawing.Size(0, 0); + // + // emptySpaceItem4 + // + this.emptySpaceItem4.AllowHotTrack = false; + this.emptySpaceItem4.Location = new System.Drawing.Point(0, 145); + this.emptySpaceItem4.MinSize = new System.Drawing.Size(104, 34); + this.emptySpaceItem4.Name = "emptySpaceItem4"; + this.emptySpaceItem4.Size = new System.Drawing.Size(104, 34); + this.emptySpaceItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem4.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem11 + // + this.layoutControlItem11.Control = this.BtnBmsDateTimeSet; + this.layoutControlItem11.Location = new System.Drawing.Point(198, 145); + this.layoutControlItem11.MinSize = new System.Drawing.Size(30, 26); + this.layoutControlItem11.Name = "layoutControlItem11"; + this.layoutControlItem11.Size = new System.Drawing.Size(72, 34); + this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem11.TextVisible = false; + // + // layoutControlItem12 + // + this.layoutControlItem12.Control = this.BtnGetCurrTime; + this.layoutControlItem12.Location = new System.Drawing.Point(104, 145); + this.layoutControlItem12.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem12.Name = "layoutControlItem12"; + this.layoutControlItem12.Size = new System.Drawing.Size(94, 34); + this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem12.TextVisible = false; + // + // gbChaModeControl + // + this.gbChaModeControl.Controls.Add(this.layoutControl2); + this.gbChaModeControl.Location = new System.Drawing.Point(288, 2); + this.gbChaModeControl.Name = "gbChaModeControl"; + this.gbChaModeControl.Size = new System.Drawing.Size(268, 206); + this.gbChaModeControl.TabIndex = 11; + this.gbChaModeControl.Text = "Charge Mode"; + // + // layoutControl2 + // + this.layoutControl2.Controls.Add(this.TeChgModeValueNew); + this.layoutControl2.Controls.Add(this.TeChgModeValueCurr); + this.layoutControl2.Controls.Add(this.CbNewChaMode); + this.layoutControl2.Controls.Add(this.BtnChaModeSet); + this.layoutControl2.Controls.Add(this.TeChaMode); + this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl2.Location = new System.Drawing.Point(2, 23); + this.layoutControl2.Name = "layoutControl2"; + this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(915, 0, 650, 400); + this.layoutControl2.Root = this.Root; + this.layoutControl2.Size = new System.Drawing.Size(264, 181); + this.layoutControl2.TabIndex = 0; + this.layoutControl2.Text = "`"; + // + // TeChgModeValueNew + // + this.TeChgModeValueNew.Location = new System.Drawing.Point(157, 59); + this.TeChgModeValueNew.Name = "TeChgModeValueNew"; + this.TeChgModeValueNew.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeChgModeValueNew.Properties.Appearance.Options.UseFont = true; + this.TeChgModeValueNew.Properties.Appearance.Options.UseTextOptions = true; + this.TeChgModeValueNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeChgModeValueNew.Size = new System.Drawing.Size(74, 24); + this.TeChgModeValueNew.StyleController = this.layoutControl2; + this.TeChgModeValueNew.TabIndex = 15; + // + // TeChgModeValueCurr + // + this.TeChgModeValueCurr.Location = new System.Drawing.Point(81, 59); + this.TeChgModeValueCurr.Name = "TeChgModeValueCurr"; + this.TeChgModeValueCurr.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeChgModeValueCurr.Properties.Appearance.Options.UseFont = true; + this.TeChgModeValueCurr.Properties.Appearance.Options.UseTextOptions = true; + this.TeChgModeValueCurr.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeChgModeValueCurr.Properties.ReadOnly = true; + this.TeChgModeValueCurr.Size = new System.Drawing.Size(72, 24); + this.TeChgModeValueCurr.StyleController = this.layoutControl2; + this.TeChgModeValueCurr.TabIndex = 14; + // + // CbNewChaMode + // + this.CbNewChaMode.Location = new System.Drawing.Point(81, 31); + this.CbNewChaMode.Name = "CbNewChaMode"; + this.CbNewChaMode.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.CbNewChaMode.Properties.Appearance.Options.UseFont = true; + this.CbNewChaMode.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.CbNewChaMode.Size = new System.Drawing.Size(180, 24); + this.CbNewChaMode.StyleController = this.layoutControl2; + this.CbNewChaMode.TabIndex = 13; + this.CbNewChaMode.SelectedIndexChanged += new System.EventHandler(this.CbNewChaMode_SelectedIndexChanged); + // + // BtnChaModeSet + // + this.BtnChaModeSet.Location = new System.Drawing.Point(191, 148); + this.BtnChaModeSet.Name = "BtnChaModeSet"; + this.BtnChaModeSet.Size = new System.Drawing.Size(70, 30); + this.BtnChaModeSet.StyleController = this.layoutControl2; + this.BtnChaModeSet.TabIndex = 12; + this.BtnChaModeSet.Text = "Set"; + this.BtnChaModeSet.Click += new System.EventHandler(this.BtnChaModeSet_Click); + // + // TeChaMode + // + this.TeChaMode.Location = new System.Drawing.Point(81, 3); + this.TeChaMode.Name = "TeChaMode"; + this.TeChaMode.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeChaMode.Properties.Appearance.Options.UseFont = true; + this.TeChaMode.Properties.Appearance.Options.UseTextOptions = true; + this.TeChaMode.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near; + this.TeChaMode.Properties.ReadOnly = true; + this.TeChaMode.Size = new System.Drawing.Size(180, 24); + this.TeChaMode.StyleController = this.layoutControl2; + this.TeChaMode.TabIndex = 10; + // + // Root + // + this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.Root.GroupBordersVisible = false; + this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.emptySpaceItem1, + this.layoutControlItem6, + this.layoutControlItem7, + this.emptySpaceItem2, + this.layoutControlItem13, + this.layoutControlItem5, + this.simpleLabelItem3, + this.layoutControlItem14}); + this.Root.Name = "Root"; + this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.Root.Size = new System.Drawing.Size(264, 181); + this.Root.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.Location = new System.Drawing.Point(0, 84); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(262, 61); + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.TeChaMode; + this.layoutControlItem6.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(262, 28); + this.layoutControlItem6.Text = " Mode (Curr)"; + this.layoutControlItem6.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.layoutControlItem6.TextSize = new System.Drawing.Size(73, 14); + this.layoutControlItem6.TextToControlDistance = 5; + // + // layoutControlItem7 + // + this.layoutControlItem7.Control = this.BtnChaModeSet; + this.layoutControlItem7.Location = new System.Drawing.Point(188, 145); + this.layoutControlItem7.MinSize = new System.Drawing.Size(30, 26); + this.layoutControlItem7.Name = "layoutControlItem7"; + this.layoutControlItem7.Size = new System.Drawing.Size(74, 34); + this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem7.TextVisible = false; + // + // emptySpaceItem2 + // + this.emptySpaceItem2.AllowHotTrack = false; + this.emptySpaceItem2.Location = new System.Drawing.Point(0, 145); + this.emptySpaceItem2.MinSize = new System.Drawing.Size(104, 34); + this.emptySpaceItem2.Name = "emptySpaceItem2"; + this.emptySpaceItem2.Size = new System.Drawing.Size(188, 34); + this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem13 + // + this.layoutControlItem13.Control = this.CbNewChaMode; + this.layoutControlItem13.Location = new System.Drawing.Point(0, 28); + this.layoutControlItem13.Name = "layoutControlItem13"; + this.layoutControlItem13.Size = new System.Drawing.Size(262, 28); + this.layoutControlItem13.Text = " Mode (New)"; + this.layoutControlItem13.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.layoutControlItem13.TextSize = new System.Drawing.Size(73, 14); + this.layoutControlItem13.TextToControlDistance = 5; + // + // layoutControlItem5 + // + this.layoutControlItem5.Control = this.TeChgModeValueCurr; + this.layoutControlItem5.Location = new System.Drawing.Point(0, 56); + this.layoutControlItem5.Name = "layoutControlItem5"; + this.layoutControlItem5.Size = new System.Drawing.Size(154, 28); + this.layoutControlItem5.Text = " - Value"; + this.layoutControlItem5.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.layoutControlItem5.TextSize = new System.Drawing.Size(73, 20); + this.layoutControlItem5.TextToControlDistance = 5; + // + // simpleLabelItem3 + // + this.simpleLabelItem3.AllowHotTrack = false; + this.simpleLabelItem3.Location = new System.Drawing.Point(232, 56); + this.simpleLabelItem3.MaxSize = new System.Drawing.Size(30, 0); + this.simpleLabelItem3.MinSize = new System.Drawing.Size(30, 18); + this.simpleLabelItem3.Name = "simpleLabelItem3"; + this.simpleLabelItem3.Size = new System.Drawing.Size(30, 28); + this.simpleLabelItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem3.Text = " V"; + this.simpleLabelItem3.TextSize = new System.Drawing.Size(12, 14); + // + // layoutControlItem14 + // + this.layoutControlItem14.Control = this.TeChgModeValueNew; + this.layoutControlItem14.Location = new System.Drawing.Point(154, 56); + this.layoutControlItem14.Name = "layoutControlItem14"; + this.layoutControlItem14.Size = new System.Drawing.Size(78, 28); + this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem14.TextVisible = false; + // + // gbCapacityControl + // + this.gbCapacityControl.Controls.Add(this.layoutControl7); + this.gbCapacityControl.Location = new System.Drawing.Point(2, 2); + this.gbCapacityControl.Name = "gbCapacityControl"; + this.gbCapacityControl.Size = new System.Drawing.Size(282, 206); + this.gbCapacityControl.TabIndex = 10; + this.gbCapacityControl.Text = "Capacity Control"; + // + // layoutControl7 + // + this.layoutControl7.Controls.Add(this.teNewSoc); + this.layoutControl7.Controls.Add(this.teCurrSoc); + this.layoutControl7.Controls.Add(this.teNewCapacity); + this.layoutControl7.Controls.Add(this.btnCapacitySet); + this.layoutControl7.Controls.Add(this.teCurrCapacity); + this.layoutControl7.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl7.Location = new System.Drawing.Point(2, 23); + this.layoutControl7.Name = "layoutControl7"; + this.layoutControl7.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1050, 144, 609, 350); + this.layoutControl7.Root = this.layoutControlGroup7; + this.layoutControl7.Size = new System.Drawing.Size(278, 181); + this.layoutControl7.TabIndex = 0; + this.layoutControl7.Text = "layoutControl7"; + // + // teNewSoc + // + this.teNewSoc.Location = new System.Drawing.Point(158, 31); + this.teNewSoc.Name = "teNewSoc"; + this.teNewSoc.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.teNewSoc.Properties.Appearance.Options.UseFont = true; + this.teNewSoc.Properties.Appearance.Options.UseTextOptions = true; + this.teNewSoc.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.teNewSoc.Size = new System.Drawing.Size(79, 24); + this.teNewSoc.StyleController = this.layoutControl7; + this.teNewSoc.TabIndex = 11; + // + // teCurrSoc + // + this.teCurrSoc.Location = new System.Drawing.Point(88, 31); + this.teCurrSoc.Name = "teCurrSoc"; + this.teCurrSoc.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.teCurrSoc.Properties.Appearance.Options.UseFont = true; + this.teCurrSoc.Properties.Appearance.Options.UseTextOptions = true; + this.teCurrSoc.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.teCurrSoc.Properties.ReadOnly = true; + this.teCurrSoc.Size = new System.Drawing.Size(66, 24); + this.teCurrSoc.StyleController = this.layoutControl7; + this.teCurrSoc.TabIndex = 10; + // + // teNewCapacity + // + this.teNewCapacity.Location = new System.Drawing.Point(158, 3); + this.teNewCapacity.Name = "teNewCapacity"; + this.teNewCapacity.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.teNewCapacity.Properties.Appearance.Options.UseFont = true; + this.teNewCapacity.Properties.Appearance.Options.UseTextOptions = true; + this.teNewCapacity.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.teNewCapacity.Size = new System.Drawing.Size(79, 24); + this.teNewCapacity.StyleController = this.layoutControl7; + this.teNewCapacity.TabIndex = 9; + // + // btnCapacitySet + // + this.btnCapacitySet.Location = new System.Drawing.Point(198, 148); + this.btnCapacitySet.Name = "btnCapacitySet"; + this.btnCapacitySet.Size = new System.Drawing.Size(77, 30); + this.btnCapacitySet.StyleController = this.layoutControl7; + this.btnCapacitySet.TabIndex = 6; + this.btnCapacitySet.Text = "Set"; + this.btnCapacitySet.Click += new System.EventHandler(this.btnCapacitySet_Click); + // + // teCurrCapacity + // + this.teCurrCapacity.Location = new System.Drawing.Point(88, 3); + this.teCurrCapacity.Name = "teCurrCapacity"; + this.teCurrCapacity.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.teCurrCapacity.Properties.Appearance.Options.UseFont = true; + this.teCurrCapacity.Properties.Appearance.Options.UseTextOptions = true; + this.teCurrCapacity.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.teCurrCapacity.Properties.ReadOnly = true; + this.teCurrCapacity.Size = new System.Drawing.Size(66, 24); + this.teCurrCapacity.StyleController = this.layoutControl7; + this.teCurrCapacity.TabIndex = 4; + // + // layoutControlGroup7 + // + this.layoutControlGroup7.CustomizationFormText = "Root"; + this.layoutControlGroup7.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup7.GroupBordersVisible = false; + this.layoutControlGroup7.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.lcitemDesignCapacity, + this.emptySpaceItem12, + this.emptySpaceItem13, + this.layoutControlItem25, + this.layoutControlItem1, + this.simpleLabelItem1, + this.layoutControlItem2, + this.layoutControlItem3, + this.simpleLabelItem2}); + this.layoutControlGroup7.Name = "Root"; + this.layoutControlGroup7.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup7.Size = new System.Drawing.Size(278, 181); + this.layoutControlGroup7.TextVisible = false; + // + // lcitemDesignCapacity + // + this.lcitemDesignCapacity.AppearanceItemCaption.Options.UseTextOptions = true; + this.lcitemDesignCapacity.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near; + this.lcitemDesignCapacity.Control = this.teCurrCapacity; + this.lcitemDesignCapacity.CustomizationFormText = "Range"; + this.lcitemDesignCapacity.Location = new System.Drawing.Point(0, 0); + this.lcitemDesignCapacity.MinSize = new System.Drawing.Size(115, 28); + this.lcitemDesignCapacity.Name = "lcitemDesignCapacity"; + this.lcitemDesignCapacity.Size = new System.Drawing.Size(155, 28); + this.lcitemDesignCapacity.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemDesignCapacity.Text = " Capacity"; + this.lcitemDesignCapacity.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.lcitemDesignCapacity.TextSize = new System.Drawing.Size(80, 20); + this.lcitemDesignCapacity.TextToControlDistance = 5; + // + // emptySpaceItem12 + // + this.emptySpaceItem12.AllowHotTrack = false; + this.emptySpaceItem12.CustomizationFormText = "emptySpaceItem12"; + this.emptySpaceItem12.Location = new System.Drawing.Point(0, 56); + this.emptySpaceItem12.Name = "emptySpaceItem12"; + this.emptySpaceItem12.Size = new System.Drawing.Size(276, 89); + this.emptySpaceItem12.TextSize = new System.Drawing.Size(0, 0); + // + // emptySpaceItem13 + // + this.emptySpaceItem13.AllowHotTrack = false; + this.emptySpaceItem13.CustomizationFormText = "emptySpaceItem13"; + this.emptySpaceItem13.Location = new System.Drawing.Point(0, 145); + this.emptySpaceItem13.MinSize = new System.Drawing.Size(104, 24); + this.emptySpaceItem13.Name = "emptySpaceItem13"; + this.emptySpaceItem13.Size = new System.Drawing.Size(195, 34); + this.emptySpaceItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem13.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem25 + // + this.layoutControlItem25.Control = this.btnCapacitySet; + this.layoutControlItem25.CustomizationFormText = "layoutControlItem25"; + this.layoutControlItem25.Location = new System.Drawing.Point(195, 145); + this.layoutControlItem25.MinSize = new System.Drawing.Size(30, 34); + this.layoutControlItem25.Name = "layoutControlItem25"; + this.layoutControlItem25.Size = new System.Drawing.Size(81, 34); + this.layoutControlItem25.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem25.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem25.TextVisible = false; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.teNewCapacity; + this.layoutControlItem1.Location = new System.Drawing.Point(155, 0); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(83, 28); + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // simpleLabelItem1 + // + this.simpleLabelItem1.AllowHotTrack = false; + this.simpleLabelItem1.Location = new System.Drawing.Point(238, 0); + this.simpleLabelItem1.MaxSize = new System.Drawing.Size(38, 18); + this.simpleLabelItem1.MinSize = new System.Drawing.Size(38, 18); + this.simpleLabelItem1.Name = "simpleLabelItem1"; + this.simpleLabelItem1.Size = new System.Drawing.Size(38, 28); + this.simpleLabelItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem1.Text = " Ah"; + this.simpleLabelItem1.TextSize = new System.Drawing.Size(19, 14); + // + // layoutControlItem2 + // + this.layoutControlItem2.AppearanceItemCaption.Options.UseTextOptions = true; + this.layoutControlItem2.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near; + this.layoutControlItem2.Control = this.teCurrSoc; + this.layoutControlItem2.Location = new System.Drawing.Point(0, 28); + this.layoutControlItem2.MinSize = new System.Drawing.Size(129, 28); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(155, 28); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.Text = " SOC"; + this.layoutControlItem2.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.layoutControlItem2.TextSize = new System.Drawing.Size(80, 20); + this.layoutControlItem2.TextToControlDistance = 5; + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.teNewSoc; + this.layoutControlItem3.Location = new System.Drawing.Point(155, 28); + this.layoutControlItem3.MinSize = new System.Drawing.Size(54, 28); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(83, 28); + this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextVisible = false; + // + // simpleLabelItem2 + // + this.simpleLabelItem2.AllowHotTrack = false; + this.simpleLabelItem2.Location = new System.Drawing.Point(238, 28); + this.simpleLabelItem2.MaxSize = new System.Drawing.Size(38, 0); + this.simpleLabelItem2.MinSize = new System.Drawing.Size(38, 18); + this.simpleLabelItem2.Name = "simpleLabelItem2"; + this.simpleLabelItem2.Size = new System.Drawing.Size(38, 28); + this.simpleLabelItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem2.Text = " %"; + this.simpleLabelItem2.TextSize = new System.Drawing.Size(19, 14); + // + // TeAntiTheftGyroCurr + // + this.TeAntiTheftGyroCurr.Location = new System.Drawing.Point(86, 237); + this.TeAntiTheftGyroCurr.Name = "TeAntiTheftGyroCurr"; + this.TeAntiTheftGyroCurr.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeAntiTheftGyroCurr.Properties.Appearance.Options.UseFont = true; + this.TeAntiTheftGyroCurr.Properties.Appearance.Options.UseTextOptions = true; + this.TeAntiTheftGyroCurr.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeAntiTheftGyroCurr.Properties.ReadOnly = true; + this.TeAntiTheftGyroCurr.Size = new System.Drawing.Size(194, 24); + this.TeAntiTheftGyroCurr.StyleController = this.layoutControl1; + this.TeAntiTheftGyroCurr.TabIndex = 13; + // + // TeSensitive + // + this.TeSensitive.Location = new System.Drawing.Point(86, 265); + this.TeSensitive.Name = "TeSensitive"; + this.TeSensitive.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.TeSensitive.Properties.Appearance.Options.UseFont = true; + this.TeSensitive.Properties.Appearance.Options.UseTextOptions = true; + this.TeSensitive.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.TeSensitive.Properties.ReadOnly = true; + this.TeSensitive.Size = new System.Drawing.Size(194, 24); + this.TeSensitive.StyleController = this.layoutControl1; + this.TeSensitive.TabIndex = 18; + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem19, + this.layoutControlItem4, + this.layoutControlItem8, + this.layoutControlGroup3, + this.layoutControlGroup4, + this.emptySpaceItem5}); + this.layoutControlGroup1.Name = "Root"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + this.layoutControlGroup1.Size = new System.Drawing.Size(838, 406); + this.layoutControlGroup1.TextVisible = false; + // + // layoutControlItem19 + // + this.layoutControlItem19.Control = this.gbCapacityControl; + this.layoutControlItem19.CustomizationFormText = "layoutControlItem19"; + this.layoutControlItem19.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem19.MaxSize = new System.Drawing.Size(286, 210); + this.layoutControlItem19.MinSize = new System.Drawing.Size(286, 210); + this.layoutControlItem19.Name = "layoutControlItem19"; + this.layoutControlItem19.Size = new System.Drawing.Size(286, 210); + this.layoutControlItem19.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem19.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem19.TextVisible = false; + // + // layoutControlItem4 + // + this.layoutControlItem4.Control = this.gbChaModeControl; + this.layoutControlItem4.Location = new System.Drawing.Point(286, 0); + this.layoutControlItem4.MaxSize = new System.Drawing.Size(272, 0); + this.layoutControlItem4.MinSize = new System.Drawing.Size(272, 95); + this.layoutControlItem4.Name = "layoutControlItem4"; + this.layoutControlItem4.Size = new System.Drawing.Size(272, 210); + this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem4.TextVisible = false; + // + // layoutControlItem8 + // + this.layoutControlItem8.Control = this.gbBmsDateTime; + this.layoutControlItem8.Location = new System.Drawing.Point(558, 0); + this.layoutControlItem8.Name = "layoutControlItem8"; + this.layoutControlItem8.Size = new System.Drawing.Size(280, 210); + this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem8.TextVisible = false; + // + // layoutControlGroup3 + // + this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.emptySpaceItem6, + this.layoutControlItem17, + this.layoutControlItem21, + this.layoutControlItem20, + this.layoutControlItem15, + this.layoutControlItem23}); + this.layoutControlGroup3.Location = new System.Drawing.Point(0, 210); + this.layoutControlGroup3.Name = "layoutControlGroup3"; + this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup3.Size = new System.Drawing.Size(286, 196); + this.layoutControlGroup3.Text = "Anti-Theft (Gyro Scope)"; + // + // emptySpaceItem6 + // + this.emptySpaceItem6.AllowHotTrack = false; + this.emptySpaceItem6.Location = new System.Drawing.Point(0, 56); + this.emptySpaceItem6.Name = "emptySpaceItem6"; + this.emptySpaceItem6.Size = new System.Drawing.Size(278, 77); + this.emptySpaceItem6.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem17 + // + this.layoutControlItem17.Control = this.TeAntiTheftGyroCurr; + this.layoutControlItem17.ControlAlignment = System.Drawing.ContentAlignment.TopLeft; + this.layoutControlItem17.CustomizationFormText = " Gyro-Scope Curr"; + this.layoutControlItem17.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem17.MaxSize = new System.Drawing.Size(0, 28); + this.layoutControlItem17.MinSize = new System.Drawing.Size(134, 28); + this.layoutControlItem17.Name = "layoutControlItem17"; + this.layoutControlItem17.Size = new System.Drawing.Size(278, 28); + this.layoutControlItem17.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem17.Text = " Gyro Scope"; + this.layoutControlItem17.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.layoutControlItem17.TextSize = new System.Drawing.Size(75, 20); + this.layoutControlItem17.TextToControlDistance = 5; + // + // layoutControlItem21 + // + this.layoutControlItem21.Control = this.BtnAntiTheftDisable; + this.layoutControlItem21.Location = new System.Drawing.Point(192, 133); + this.layoutControlItem21.MaxSize = new System.Drawing.Size(0, 34); + this.layoutControlItem21.MinSize = new System.Drawing.Size(30, 34); + this.layoutControlItem21.Name = "layoutControlItem21"; + this.layoutControlItem21.Size = new System.Drawing.Size(86, 34); + this.layoutControlItem21.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem21.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem21.TextVisible = false; + // + // layoutControlItem20 + // + this.layoutControlItem20.Control = this.BtnClearAntiTheftProtect; + this.layoutControlItem20.Location = new System.Drawing.Point(0, 133); + this.layoutControlItem20.MinSize = new System.Drawing.Size(30, 26); + this.layoutControlItem20.Name = "layoutControlItem20"; + this.layoutControlItem20.Size = new System.Drawing.Size(103, 34); + this.layoutControlItem20.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem20.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem20.TextVisible = false; + // + // layoutControlItem15 + // + this.layoutControlItem15.Control = this.BtnAntiTheftEnable; + this.layoutControlItem15.Location = new System.Drawing.Point(103, 133); + this.layoutControlItem15.MinSize = new System.Drawing.Size(30, 26); + this.layoutControlItem15.Name = "layoutControlItem15"; + this.layoutControlItem15.Size = new System.Drawing.Size(89, 34); + this.layoutControlItem15.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem15.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem15.TextVisible = false; + // + // layoutControlItem23 + // + this.layoutControlItem23.Control = this.TeSensitive; + this.layoutControlItem23.ControlAlignment = System.Drawing.ContentAlignment.TopLeft; + this.layoutControlItem23.CustomizationFormText = " Sensitive"; + this.layoutControlItem23.Location = new System.Drawing.Point(0, 28); + this.layoutControlItem23.MinSize = new System.Drawing.Size(178, 28); + this.layoutControlItem23.Name = "layoutControlItem23"; + this.layoutControlItem23.Size = new System.Drawing.Size(278, 28); + this.layoutControlItem23.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem23.Text = " Sensitive"; + this.layoutControlItem23.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.layoutControlItem23.TextSize = new System.Drawing.Size(75, 14); + this.layoutControlItem23.TextToControlDistance = 5; + // + // layoutControlGroup4 + // + this.layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem18, + this.emptySpaceItem7, + this.layoutControlItem16, + this.layoutControlItem22, + this.emptySpaceItem8}); + this.layoutControlGroup4.Location = new System.Drawing.Point(286, 210); + this.layoutControlGroup4.Name = "layoutControlGroup4"; + this.layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup4.Size = new System.Drawing.Size(272, 196); + this.layoutControlGroup4.Text = "Anti-Theft (RS-485 Timeout)"; + // + // layoutControlItem18 + // + this.layoutControlItem18.Control = this.BtnRS485TimeoutSet; + this.layoutControlItem18.Location = new System.Drawing.Point(188, 133); + this.layoutControlItem18.MaxSize = new System.Drawing.Size(0, 34); + this.layoutControlItem18.MinSize = new System.Drawing.Size(76, 34); + this.layoutControlItem18.Name = "layoutControlItem18"; + this.layoutControlItem18.Size = new System.Drawing.Size(76, 34); + this.layoutControlItem18.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem18.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem18.TextVisible = false; + // + // emptySpaceItem7 + // + this.emptySpaceItem7.AllowHotTrack = false; + this.emptySpaceItem7.Location = new System.Drawing.Point(0, 28); + this.emptySpaceItem7.MinSize = new System.Drawing.Size(104, 24); + this.emptySpaceItem7.Name = "emptySpaceItem7"; + this.emptySpaceItem7.Size = new System.Drawing.Size(264, 105); + this.emptySpaceItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem7.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem16 + // + this.layoutControlItem16.Control = this.TeCommTimeout; + this.layoutControlItem16.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem16.MinSize = new System.Drawing.Size(178, 28); + this.layoutControlItem16.Name = "layoutControlItem16"; + this.layoutControlItem16.Size = new System.Drawing.Size(180, 28); + this.layoutControlItem16.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem16.Text = " RS-485 Timeout"; + this.layoutControlItem16.TextSize = new System.Drawing.Size(93, 14); + // + // layoutControlItem22 + // + this.layoutControlItem22.Control = this.TeCommTimeoutNew; + this.layoutControlItem22.Location = new System.Drawing.Point(180, 0); + this.layoutControlItem22.Name = "layoutControlItem22"; + this.layoutControlItem22.Size = new System.Drawing.Size(84, 28); + this.layoutControlItem22.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem22.TextVisible = false; + // + // emptySpaceItem8 + // + this.emptySpaceItem8.AllowHotTrack = false; + this.emptySpaceItem8.Location = new System.Drawing.Point(0, 133); + this.emptySpaceItem8.Name = "emptySpaceItem8"; + this.emptySpaceItem8.Size = new System.Drawing.Size(188, 34); + this.emptySpaceItem8.TextSize = new System.Drawing.Size(0, 0); + // + // emptySpaceItem5 + // + this.emptySpaceItem5.AllowHotTrack = false; + this.emptySpaceItem5.Location = new System.Drawing.Point(558, 210); + this.emptySpaceItem5.Name = "emptySpaceItem5"; + this.emptySpaceItem5.Size = new System.Drawing.Size(280, 196); + this.emptySpaceItem5.TextSize = new System.Drawing.Size(0, 0); + // + // ucCalibration + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.layoutControl1); + this.Name = "ucCalibration"; + this.Size = new System.Drawing.Size(838, 406); + this.Load += new System.EventHandler(this.ucCalibration_Load); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.TeCommTimeoutNew.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeCommTimeout.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbBmsDateTime)).EndInit(); + this.gbBmsDateTime.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit(); + this.layoutControl3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.TeCurrDateTime.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeNewDateTime.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbChaModeControl)).EndInit(); + this.gbChaModeControl.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit(); + this.layoutControl2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.TeChgModeValueNew.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeChgModeValueCurr.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.CbNewChaMode.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeChaMode.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbCapacityControl)).EndInit(); + this.gbCapacityControl.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl7)).EndInit(); + this.layoutControl7.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.teNewSoc.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.teCurrSoc.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.teNewCapacity.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.teCurrCapacity.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemDesignCapacity)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem13)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem25)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeAntiTheftGyroCurr.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeSensitive.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem21)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem5)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraEditors.GroupControl gbCapacityControl; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem19; + private DevExpress.XtraLayout.LayoutControl layoutControl7; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup7; + private DevExpress.XtraEditors.TextEdit teCurrCapacity; + private DevExpress.XtraLayout.LayoutControlItem lcitemDesignCapacity; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem12; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem13; + private DevExpress.XtraEditors.SimpleButton btnCapacitySet; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem25; + private DevExpress.XtraEditors.TextEdit teNewCapacity; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem1; + private DevExpress.XtraEditors.TextEdit teCurrSoc; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraEditors.TextEdit teNewSoc; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem2; + private DevExpress.XtraEditors.GroupControl gbChaModeControl; + private DevExpress.XtraLayout.LayoutControl layoutControl2; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private DevExpress.XtraEditors.SimpleButton BtnChaModeSet; + private DevExpress.XtraEditors.TextEdit TeChaMode; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2; + private DevExpress.XtraEditors.GroupControl gbBmsDateTime; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8; + private DevExpress.XtraLayout.LayoutControl layoutControl3; + private DevExpress.XtraEditors.TextEdit TeCurrDateTime; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9; + private DevExpress.XtraEditors.TextEdit TeNewDateTime; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3; + private DevExpress.XtraEditors.SimpleButton BtnBmsDateTimeSet; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem4; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11; + private DevExpress.XtraEditors.SimpleButton BtnGetCurrTime; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12; + private DevExpress.XtraEditors.ComboBoxEdit CbNewChaMode; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13; + private DevExpress.XtraEditors.TextEdit TeChgModeValueCurr; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem3; + private DevExpress.XtraEditors.TextEdit TeChgModeValueNew; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem6; + private DevExpress.XtraEditors.TextEdit TeAntiTheftGyroCurr; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem17; + private DevExpress.XtraEditors.SimpleButton BtnAntiTheftDisable; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem21; + private DevExpress.XtraEditors.SimpleButton BtnClearAntiTheftProtect; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem20; + private DevExpress.XtraEditors.SimpleButton BtnAntiTheftEnable; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem15; + private DevExpress.XtraEditors.SimpleButton BtnRS485TimeoutSet; + private DevExpress.XtraEditors.TextEdit TeCommTimeout; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem16; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem18; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem7; + private DevExpress.XtraEditors.TextEdit TeCommTimeoutNew; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem22; + private DevExpress.XtraEditors.TextEdit TeSensitive; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem23; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem8; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem5; + } +} diff --git a/LFP_Manager/Controls/ucCalibration.cs b/LFP_Manager/Controls/ucCalibration.cs new file mode 100644 index 0000000..c656ff9 --- /dev/null +++ b/LFP_Manager/Controls/ucCalibration.cs @@ -0,0 +1,463 @@ +using DevExpress.XtraLayout; +using LFP_Manager.DataStructure; +using LFP_Manager.Utils; +using System; +using System.Globalization; +using System.Windows.Forms; + +namespace LFP_Manager.Controls +{ + public partial class ucCalibration : DevExpress.XtraEditors.XtraUserControl + { + #region DELEGATE + + public delegate void setCalibUpdate(object sender); + public delegate void setCalibCommand(int mode, int index, int flag, ref DeviceParamData aParm, ref DeviceCalibration aCalib); + public delegate Int32 getBattData(int item, int cno); + + #endregion + + #region ENUMS + + private enum ControlLevel + { + User = 0, + Technician = 1, + Engineer = 2, + Master = 3 + } + + private enum CommandMode + { + SetCapacity = 15, + SetChargeMode = 16, + SetDateTime = 17, + SetAntiTheft = 18, + ClearAntiTheft = 19, + SetRS485Timeout = 20, + SetBalanceVoltage = 21, + SetBalanceDiff = 22 + } + + #endregion + + #region VARIABLES + + const int CALC_INDEX = 6; + + CommConfig Config; + + DeviceSystemData SystemData; + DeviceCalibration rCalib; + DeviceCalibration wCalib; + + DeviceParamData rParam; + + public event setCalibCommand OnCommand = null; + + int wFlag = 0; + + int dFlag; + + int PasswordResult; + + #endregion + + #region CONSTRUCTORS + + // Battery No: + // 0: No 1,3,5,7,9,11,13,15 ODD + // 1: No 2,4,6,8,10,12,14 Even + public ucCalibration() + { + InitializeComponent(); + + ComponentLoad(); + + Config = new CommConfig(); + + dFlag = 0; + } + + private void ComponentLoad() + { + CbNewChaMode.Clear(); + for (int i = 0; i < csConstData.SystemInfo.CHG_MODE.Length; i++) + { + CbNewChaMode.Properties.Items.Add(csConstData.SystemInfo.CHG_MODE[i]); + } + + teNewCapacity.KeyPress += TextBox_KeyPress; + teNewSoc.KeyPress += TextBox_KeyPress; + TeCommTimeoutNew.KeyPress += TextBox_KeyPress; + TeChgModeValueNew.KeyPress += TextBox_KeyPress2; + } + #endregion + + #region EXT EVENT FUNCTION + + private void OnCommnadEvent(int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib) + { + OnCommand?.Invoke(mode, index, flag, ref aParam, ref aCalib); + } + + #endregion + + #region PUBLIC FUCTIONS + + public void UpdateConfig(CommConfig aConfig) + { + Config = aConfig; + } + public void UpdateData(DeviceSystemData aSystemData, DeviceCalibration aCalib) + { + SystemData = aSystemData; + rCalib = aCalib; + DisplayCalib(); + UpdateNewCalib(); + } + + private void UpdateNewCalib() + { + if (SystemData != null) + { + if (wFlag == 0) + { + teNewCapacity.Text = teCurrCapacity.Text; + teNewSoc.Text = teCurrSoc.Text; + + wFlag = 1; + } + } + } + #endregion + + #region DISPLAY DATA + + private void DisplayCalib() + { + if (SystemData != null) + { + teCurrCapacity.Text = string.Format("{0}", SystemData.ValueData.designedCapacity / 10); + teCurrSoc.Text = string.Format("{0}", SystemData.ValueData.rSOC / 10); + + int mode = SystemData.CalibrationData.ChaMode.Mode; + int idx = MapChaModeToComboIndex(mode); + if (idx >= 0 && idx < csConstData.SystemInfo.CHG_MODE.Length) + TeChaMode.Text = csConstData.SystemInfo.CHG_MODE[idx]; + else + TeChaMode.Text = string.Format(CultureInfo.InvariantCulture, "UNKNOWN({0})", mode); + + TeChgModeValueCurr.Text = string.Format("{0:0.00}", Convert.ToDouble(SystemData.CalibrationData.ChaMode.Value) / 100); + + TeCurrDateTime.Text = SystemData.BmsDateTime.DateTimeStr; + + // Anti-Theft Data Display + if (SystemData.CalibrationData.AntiTheft.GyroScope == 0) + { + TeAntiTheftGyroCurr.Text = "DISABLE"; + } + else + { + TeAntiTheftGyroCurr.Text = "ENABLE"; + } + TeSensitive.Text = string.Format("{0}", SystemData.CalibrationData.AntiTheft.GyroScope); + + // Anti-Theft - RS-485 Comm. Timeout + TeCommTimeout.Text = string.Format("{0}", SystemData.CalibrationData.AntiTheft.Comm); + + if (dFlag == 0) + { + CbNewChaMode.SelectedIndex = 1; + CbNewChaMode.SelectedIndex = SystemData.CalibrationData.ChaMode.Mode; + + TeChgModeValueNew.Text = TeChgModeValueCurr.Text; + + dFlag = 1; + } + } + } + + #endregion + + #region BUTTON EVENT + + private void TextBox_KeyPress(object sender, KeyPressEventArgs e) + { + csUtils.TypingOnlyNumber(sender, e, false, false); + } + private void TextBox_KeyPress2(object sender, KeyPressEventArgs e) + { + csUtils.TypingOnlyNumber(sender, e, true, false); + } + + private void btnCapacitySet_Click(object sender, EventArgs e) + { + try + { + if (!ValidateNumericInput(teNewCapacity.Text, "Capacity") || + !ValidateNumericInput(teNewSoc.Text, "SOC")) + { + return; + } + + wCalib = rCalib.DeepCopy(); + wCalib.CapCalib.DesignCapacity = Convert.ToInt32(teNewCapacity.Text) * 10; + wCalib.CapCalib.SocValue = Convert.ToInt32(teNewSoc.Text); + + OnCommnadEvent((int)CommandMode.SetCapacity, CALC_INDEX, 1, ref rParam, ref wCalib); + } + catch (Exception ex) + { + ShowError($"Failed to set capacity: {ex.Message}"); + } + } + + private void BtnChaModeSet_Click(object sender, EventArgs e) + { + try + { + if (string.IsNullOrEmpty(CbNewChaMode.Text)) + { + ShowError("Please select a charge mode"); + return; + } + + if (CbNewChaMode.SelectedIndex > 1 && + !ValidateNumericInput(TeChgModeValueNew.Text, "Charge Mode Value")) + { + return; + } + + wCalib = rCalib.DeepCopy(); + wCalib.ChaMode.Mode = CbNewChaMode.SelectedIndex; + wCalib.ChaMode.Value = (int)(Convert.ToDouble(TeChgModeValueNew.Text) * 100); + + OnCommnadEvent((int)CommandMode.SetChargeMode, CALC_INDEX, 1, ref rParam, ref wCalib); + } + catch (Exception ex) + { + ShowError($"Failed to set charge mode: {ex.Message}"); + } + } + private void BtnBmsDateTimeSet_Click(object sender, EventArgs e) + { + try + { + if (string.IsNullOrEmpty(TeNewDateTime.Text)) + { + ShowError("Please enter a date/time value"); + return; + } + + DateTime dateTime = Convert.ToDateTime(TeNewDateTime.Text); + int iDateTime = CalculateDateTimeValue(dateTime); + + wCalib = rCalib.DeepCopy(); + wCalib.BmsDateTime.sValue[0] = (short)(iDateTime >> 16); + wCalib.BmsDateTime.sValue[1] = (short)(iDateTime >> 0); + + OnCommnadEvent((int)CommandMode.SetDateTime, CALC_INDEX, 1, ref rParam, ref wCalib); + } + catch (Exception ex) + { + ShowError($"Failed to set date/time: {ex.Message}"); + } + } + private int CalculateDateTimeValue(DateTime dateTime) + { + return ((dateTime.Year - 2000) << 26) + | (dateTime.Month << 22) + | (dateTime.Day << 17) + | (dateTime.Hour << 12) + | (dateTime.Minute << 6) + | (dateTime.Second << 0); + } + + private void BtnGetCurrTime_Click(object sender, EventArgs e) + { + TeNewDateTime.Text = string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now); + } + + private void BtnClearAntiTheftProtect_Click(object sender, EventArgs e) + { + wCalib = rCalib.DeepCopy(); + wCalib.AntiTheft.GyroScope = Config.GyroSensitive; + + OnCommnadEvent(19, CALC_INDEX, 1, ref rParam, ref wCalib); + } + + private void PassWordResultProc(int result) + { + PasswordResult = result; + } + + private void BtnAntiTheftEnable_Click(object sender, EventArgs e) + { + wCalib = rCalib.DeepCopy(); + wCalib.AntiTheft.GyroScope = Config.GyroSensitive; + + OnCommnadEvent(18, CALC_INDEX, 1, ref rParam, ref wCalib); + } + + private void BtnAntiTheftDisable_Click(object sender, EventArgs e) + { + wCalib = rCalib.DeepCopy(); + wCalib.AntiTheft.GyroScope = 0; + + OnCommnadEvent(18, CALC_INDEX, 1, ref rParam, ref wCalib); + } + + private void BtnRS485TimeoutSet_Click(object sender, EventArgs e) + { + string stTimeout = TeCommTimeoutNew.Text; + int Timeout = 0; + + try + { + Timeout = Convert.ToInt32(stTimeout); + } + catch (Exception) + { + MessageBox.Show("Timeout data Format Error", "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + wCalib = rCalib.DeepCopy(); + wCalib.AntiTheft.Comm = Timeout; + + OnCommnadEvent(20, CALC_INDEX, 1, ref rParam, ref wCalib); + } + #endregion + + #region COMPONENT EVENT + private void CbNewChaMode_SelectedIndexChanged(object sender, EventArgs e) + { + switch (CbNewChaMode.SelectedIndex) + { + case 0: + TeChgModeValueNew.Enabled = false; + break; + case 1: + TeChgModeValueNew.Enabled = false; + break; + case 2: + TeChgModeValueNew.Enabled = true; + break; + case 3: + TeChgModeValueNew.Enabled = true; + break; + case 4: + TeChgModeValueNew.Enabled = true; + break; + default: + TeChgModeValueNew.Enabled = false; + break; + } + } + #endregion + + #region FORM EVENT + private void ucCalibration_Load(object sender, EventArgs e) + { + CalibConfig_ReLoad(); + } + + private void CalibConfig_ReLoad() + { + var level = (ControlLevel)Config.ControlLevel; + + btnCapacitySet.Enabled = level == ControlLevel.Master; + BtnChaModeSet.Enabled = level >= ControlLevel.Engineer; + BtnBmsDateTimeSet.Enabled = level >= ControlLevel.Engineer; + BtnClearAntiTheftProtect.Enabled = level >= ControlLevel.Technician; + BtnAntiTheftEnable.Enabled = level >= ControlLevel.Engineer; + BtnAntiTheftDisable.Enabled = level >= ControlLevel.Engineer; + BtnRS485TimeoutSet.Enabled = level >= ControlLevel.Technician; + } + + #endregion + + #region VALIDATION METHODS + + private bool ValidateNumericInput(string input, string fieldName) + { + if (string.IsNullOrEmpty(input)) + { + ShowError($"Please enter a value for {fieldName}"); + return false; + } + + if (!int.TryParse(input, out _)) + { + ShowError($"Invalid numeric value for {fieldName}"); + return false; + } + + return true; + } + + private void ShowError(string message) + { + MessageBox.Show(message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + #endregion + + #region HELPER FUNCTIONS + // Charging Mode 매핑: 콤보 인덱스 <-> ChaMode.Mode + private static bool TryMapIndexToChaMode(int comboIndex, out int mode) + { + // UI: 0=CC,1=CV,2=CC-CV(x),3=Time(x),4=Power(x) (예시) + // 장비: 0,1,2,4,8 로 매핑 + switch (comboIndex) + { + case 0: mode = 0; return true; + case 1: mode = 1; return true; + case 2: mode = 2; return true; + case 3: mode = 4; return true; + case 4: mode = 8; return true; + default: mode = -1; return false; + } + } + private static int MapChaModeToComboIndex(int mode) + { + switch (mode) + { + case 0: return 0; + case 1: return 1; + case 2: return 2; + case 4: return 3; + case 8: return 4; + default: return -1; + } + } + private static bool TryParseDouble(string text, out double value) + { + return double.TryParse(text, NumberStyles.Float, CultureInfo.InvariantCulture, out value); + } + + private static string ToInvStr(double v, string fmt) => + v.ToString(fmt, CultureInfo.InvariantCulture); + + // BMS DateTime 비트 인코딩 (검증 포함) + private static bool TryEncodeBmsDateTime(DateTime dt, out short hi, out short lo, out string error) + { + error = null; + int year = dt.Year; + if (year < 2000 || year > 2063) { error = "Year must be 2000~2063"; hi = lo = 0; return false; } + int y = year - 2000; + int m = dt.Month; if (m < 1 || m > 12) { error = "Month out of range"; hi = lo = 0; return false; } + int d = dt.Day; if (d < 1 || d > 31) { error = "Day out of range"; hi = lo = 0; return false; } + int hh = dt.Hour; if (hh < 0 || hh > 23) { error = "Hour out of range"; hi = lo = 0; return false; } + int mm = dt.Minute; if (mm < 0 || mm > 59) { error = "Minute out of range"; hi = lo = 0; return false; } + int ss = dt.Second; if (ss < 0 || ss > 59) { error = "Second out of range"; hi = lo = 0; return false; } + + int packed = (y << 26) | (m << 22) | (d << 17) | (hh << 12) | (mm << 6) | ss; + hi = (short)(packed >> 16); + lo = (short)(packed & 0xFFFF); + return true; + } + #endregion + } +} diff --git a/LFP_Manager/Controls/ucCalibration.resx b/LFP_Manager/Controls/ucCalibration.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/LFP_Manager/Controls/ucCalibration.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LFP_Manager/Controls/ucCalibrationView.Designer.cs b/LFP_Manager/Controls/ucCalibrationView.Designer.cs new file mode 100644 index 0000000..2ad16c0 --- /dev/null +++ b/LFP_Manager/Controls/ucCalibrationView.Designer.cs @@ -0,0 +1,303 @@ + +namespace LFP_Manager.Controls +{ + partial class ucCalibrationView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.edDchCalibration = new DevExpress.XtraEditors.TextEdit(); + this.edChgCalibration = new DevExpress.XtraEditors.TextEdit(); + this.edChgOption = new DevExpress.XtraEditors.TextEdit(); + this.edBattCapacity = new DevExpress.XtraEditors.TextEdit(); + this.Root = new DevExpress.XtraLayout.LayoutControlGroup(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.gbBattCapacity = new DevExpress.XtraLayout.LayoutControlGroup(); + this.lbBattCapacity = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.gbCalibrationValue = new DevExpress.XtraLayout.LayoutControlGroup(); + this.lbChgOption = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.lbChgCalibration = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.lbDchCalibration = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.edDchCalibration.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.edChgCalibration.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.edChgOption.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.edBattCapacity.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbBattCapacity)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbBattCapacity)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbCalibrationValue)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbChgOption)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbChgCalibration)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbDchCalibration)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.AllowCustomization = false; + this.layoutControl1.Controls.Add(this.edDchCalibration); + this.layoutControl1.Controls.Add(this.edChgCalibration); + this.layoutControl1.Controls.Add(this.edChgOption); + this.layoutControl1.Controls.Add(this.edBattCapacity); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(993, 152, 650, 400); + this.layoutControl1.Root = this.Root; + this.layoutControl1.Size = new System.Drawing.Size(449, 277); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // edDchCalibration + // + this.edDchCalibration.Location = new System.Drawing.Point(129, 132); + this.edDchCalibration.Name = "edDchCalibration"; + this.edDchCalibration.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F); + this.edDchCalibration.Properties.Appearance.Options.UseFont = true; + this.edDchCalibration.Properties.Appearance.Options.UseTextOptions = true; + this.edDchCalibration.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.edDchCalibration.Size = new System.Drawing.Size(314, 22); + this.edDchCalibration.StyleController = this.layoutControl1; + this.edDchCalibration.TabIndex = 7; + // + // edChgCalibration + // + this.edChgCalibration.Location = new System.Drawing.Point(129, 106); + this.edChgCalibration.Name = "edChgCalibration"; + this.edChgCalibration.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F); + this.edChgCalibration.Properties.Appearance.Options.UseFont = true; + this.edChgCalibration.Properties.Appearance.Options.UseTextOptions = true; + this.edChgCalibration.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.edChgCalibration.Size = new System.Drawing.Size(314, 22); + this.edChgCalibration.StyleController = this.layoutControl1; + this.edChgCalibration.TabIndex = 6; + // + // edChgOption + // + this.edChgOption.Location = new System.Drawing.Point(129, 80); + this.edChgOption.Name = "edChgOption"; + this.edChgOption.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F); + this.edChgOption.Properties.Appearance.Options.UseFont = true; + this.edChgOption.Properties.Appearance.Options.UseTextOptions = true; + this.edChgOption.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.edChgOption.Size = new System.Drawing.Size(314, 22); + this.edChgOption.StyleController = this.layoutControl1; + this.edChgOption.TabIndex = 5; + // + // edBattCapacity + // + this.edBattCapacity.Location = new System.Drawing.Point(129, 27); + this.edBattCapacity.Name = "edBattCapacity"; + this.edBattCapacity.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F); + this.edBattCapacity.Properties.Appearance.Options.UseFont = true; + this.edBattCapacity.Properties.Appearance.Options.UseTextOptions = true; + this.edBattCapacity.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.edBattCapacity.Size = new System.Drawing.Size(314, 22); + this.edBattCapacity.StyleController = this.layoutControl1; + this.edBattCapacity.TabIndex = 4; + // + // Root + // + this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.Root.GroupBordersVisible = false; + this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.emptySpaceItem1, + this.gbBattCapacity, + this.gbCalibrationValue}); + this.Root.Name = "Root"; + this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.Root.Size = new System.Drawing.Size(449, 277); + this.Root.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.Location = new System.Drawing.Point(0, 158); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(447, 117); + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // gbBattCapacity + // + this.gbBattCapacity.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.lbBattCapacity, + this.layoutControlItem1}); + this.gbBattCapacity.Location = new System.Drawing.Point(0, 0); + this.gbBattCapacity.Name = "gbBattCapacity"; + this.gbBattCapacity.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.gbBattCapacity.Size = new System.Drawing.Size(447, 53); + this.gbBattCapacity.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.gbBattCapacity.Text = "Battery Capacity"; + // + // lbBattCapacity + // + this.lbBattCapacity.AllowHotTrack = false; + this.lbBattCapacity.Location = new System.Drawing.Point(0, 0); + this.lbBattCapacity.Name = "lbBattCapacity"; + this.lbBattCapacity.Size = new System.Drawing.Size(123, 26); + this.lbBattCapacity.Text = " Battery Capacity"; + this.lbBattCapacity.TextSize = new System.Drawing.Size(96, 14); + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.edBattCapacity; + this.layoutControlItem1.Location = new System.Drawing.Point(123, 0); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(318, 26); + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // gbCalibrationValue + // + this.gbCalibrationValue.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.lbChgOption, + this.layoutControlItem2, + this.lbChgCalibration, + this.layoutControlItem3, + this.lbDchCalibration, + this.layoutControlItem4}); + this.gbCalibrationValue.Location = new System.Drawing.Point(0, 53); + this.gbCalibrationValue.Name = "gbCalibrationValue"; + this.gbCalibrationValue.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.gbCalibrationValue.Size = new System.Drawing.Size(447, 105); + this.gbCalibrationValue.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.gbCalibrationValue.Text = "Calibration Value"; + // + // lbChgOption + // + this.lbChgOption.AllowHotTrack = false; + this.lbChgOption.Location = new System.Drawing.Point(0, 0); + this.lbChgOption.Name = "lbChgOption"; + this.lbChgOption.Size = new System.Drawing.Size(123, 26); + this.lbChgOption.Text = " Charge Option"; + this.lbChgOption.TextSize = new System.Drawing.Size(96, 14); + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.edChgOption; + this.layoutControlItem2.Location = new System.Drawing.Point(123, 0); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(318, 26); + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // lbChgCalibration + // + this.lbChgCalibration.AllowHotTrack = false; + this.lbChgCalibration.Location = new System.Drawing.Point(0, 26); + this.lbChgCalibration.Name = "lbChgCalibration"; + this.lbChgCalibration.Size = new System.Drawing.Size(123, 26); + this.lbChgCalibration.Text = " Calibration (CHG)"; + this.lbChgCalibration.TextSize = new System.Drawing.Size(96, 14); + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.edChgCalibration; + this.layoutControlItem3.Location = new System.Drawing.Point(123, 26); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(318, 26); + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextVisible = false; + // + // lbDchCalibration + // + this.lbDchCalibration.AllowHotTrack = false; + this.lbDchCalibration.Location = new System.Drawing.Point(0, 52); + this.lbDchCalibration.Name = "lbDchCalibration"; + this.lbDchCalibration.Size = new System.Drawing.Size(123, 26); + this.lbDchCalibration.Text = " Calibration (DCH)"; + this.lbDchCalibration.TextSize = new System.Drawing.Size(96, 14); + // + // layoutControlItem4 + // + this.layoutControlItem4.Control = this.edDchCalibration; + this.layoutControlItem4.Location = new System.Drawing.Point(123, 52); + this.layoutControlItem4.Name = "layoutControlItem4"; + this.layoutControlItem4.Size = new System.Drawing.Size(318, 26); + this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem4.TextVisible = false; + // + // ucCalibrationView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.layoutControl1); + this.Name = "ucCalibrationView"; + this.Size = new System.Drawing.Size(449, 277); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.edDchCalibration.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.edChgCalibration.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.edChgOption.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.edBattCapacity.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbBattCapacity)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbBattCapacity)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbCalibrationValue)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbChgOption)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbChgCalibration)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbDchCalibration)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private DevExpress.XtraEditors.TextEdit edBattCapacity; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private DevExpress.XtraEditors.TextEdit edDchCalibration; + private DevExpress.XtraEditors.TextEdit edChgCalibration; + private DevExpress.XtraEditors.TextEdit edChgOption; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private DevExpress.XtraLayout.SimpleLabelItem lbBattCapacity; + private DevExpress.XtraLayout.SimpleLabelItem lbChgOption; + private DevExpress.XtraLayout.SimpleLabelItem lbChgCalibration; + private DevExpress.XtraLayout.SimpleLabelItem lbDchCalibration; + private DevExpress.XtraLayout.LayoutControlGroup gbBattCapacity; + private DevExpress.XtraLayout.LayoutControlGroup gbCalibrationValue; + } +} diff --git a/LFP_Manager/Controls/ucCalibrationView.cs b/LFP_Manager/Controls/ucCalibrationView.cs new file mode 100644 index 0000000..6839a25 --- /dev/null +++ b/LFP_Manager/Controls/ucCalibrationView.cs @@ -0,0 +1,63 @@ +using DevExpress.XtraEditors; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +using LFP_Manager.DataStructure; + +namespace LFP_Manager.Controls +{ + public partial class ucCalibrationView : DevExpress.XtraEditors.XtraUserControl + { + #region VARIABLES + + DeviceSystemData ModuleData; + + #endregion + + public ucCalibrationView() + { + InitializeComponent(); + + edBattCapacity.Enabled = false; + edChgOption.Enabled = false; + edChgCalibration.Enabled = false; + edDchCalibration.Enabled = false; + } + + public void DisplayValue(ref DeviceSystemData[] aSystemData) + { + ModuleData = aSystemData[0]; + + if (this.InvokeRequired) + { + this.Invoke(new MethodInvoker(delegate () + { + edBattCapacity.Text = String.Format("{0}", ModuleData.CalibrationData.Battery.Capacity); + if (ModuleData.CalibrationData.Current.ChargeOption == 0) + edChgOption.Text = "Full Charge"; + else + edChgOption.Text = "Limit Charge"; + edChgCalibration.Text = String.Format("{0}", ModuleData.CalibrationData.Current.ChgCalibration_K); + edDchCalibration.Text = String.Format("{0}", ModuleData.CalibrationData.Current.DchCalibration_K); + })); + } + else + { + edBattCapacity.Text = String.Format("{0}", ModuleData.CalibrationData.Battery.Capacity); + if (ModuleData.CalibrationData.Current.ChargeOption == 0) + edChgOption.Text = "Full Charge"; + else + edChgOption.Text = "Limit Charge"; + edChgCalibration.Text = String.Format("{0}", ModuleData.CalibrationData.Current.ChgCalibration_K); + edDchCalibration.Text = String.Format("{0}", ModuleData.CalibrationData.Current.DchCalibration_K); + } + } + } +} diff --git a/LFP_Manager/Controls/ucCalibrationView.resx b/LFP_Manager/Controls/ucCalibrationView.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/LFP_Manager/Controls/ucCalibrationView.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LFP_Manager/Controls/ucCommConfig.Designer.cs b/LFP_Manager/Controls/ucCommConfig.Designer.cs new file mode 100644 index 0000000..69f8507 --- /dev/null +++ b/LFP_Manager/Controls/ucCommConfig.Designer.cs @@ -0,0 +1,721 @@ +namespace LFP_Manager.Controls +{ + partial class ucCommConfig + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.RbRS485 = new DevExpress.XtraEditors.CheckEdit(); + this.CbSnmpModel = new DevExpress.XtraEditors.ComboBoxEdit(); + this.teTargetIP = new IPAddressControlLib.IPAddressControl(); + this.RbSnmp = new DevExpress.XtraEditors.CheckEdit(); + this.edRecvWaitTime = new DevExpress.XtraEditors.TextEdit(); + this.cbUartModel = new DevExpress.XtraEditors.ComboBoxEdit(); + this.RbUart = new DevExpress.XtraEditors.CheckEdit(); + this.cbUartPort = new DevExpress.XtraEditors.ComboBoxEdit(); + this.cbDbLogPeriod = new DevExpress.XtraEditors.ComboBoxEdit(); + this.btnClose = new DevExpress.XtraEditors.SimpleButton(); + this.btnSave = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem(); + this.gbDbConfig = new DevExpress.XtraLayout.LayoutControlGroup(); + this.lbDbLogPeriod = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlItem15 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + this.LcGroupUart = new DevExpress.XtraLayout.LayoutControlGroup(); + this.simpleLabelItem3 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.simpleLabelItem4 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + this.simpleLabelItem2 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.LcGroupSnmp = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem(); + this.simpleLabelItem6 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.simpleLabelItem1 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.CbModuleQty = new DevExpress.XtraEditors.ComboBoxEdit(); + this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem(); + this.simpleLabelItem5 = new DevExpress.XtraLayout.SimpleLabelItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.RbRS485.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.CbSnmpModel.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.RbSnmp.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.edRecvWaitTime.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbUartModel.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.RbUart.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbUartPort.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbDbLogPeriod.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbDbConfig)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbDbLogPeriod)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.LcGroupUart)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.LcGroupSnmp)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.CbModuleQty.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem5)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.CbModuleQty); + this.layoutControl1.Controls.Add(this.RbRS485); + this.layoutControl1.Controls.Add(this.CbSnmpModel); + this.layoutControl1.Controls.Add(this.teTargetIP); + this.layoutControl1.Controls.Add(this.RbSnmp); + this.layoutControl1.Controls.Add(this.edRecvWaitTime); + this.layoutControl1.Controls.Add(this.cbUartModel); + this.layoutControl1.Controls.Add(this.RbUart); + this.layoutControl1.Controls.Add(this.cbUartPort); + this.layoutControl1.Controls.Add(this.cbDbLogPeriod); + this.layoutControl1.Controls.Add(this.btnClose); + this.layoutControl1.Controls.Add(this.btnSave); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(889, 267, 774, 451); + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(462, 458); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // RbRS485 + // + this.RbRS485.Location = new System.Drawing.Point(161, 37); + this.RbRS485.Name = "RbRS485"; + this.RbRS485.Properties.Caption = "RS-485"; + this.RbRS485.Properties.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Radio; + this.RbRS485.Properties.RadioGroupIndex = 1; + this.RbRS485.Size = new System.Drawing.Size(140, 20); + this.RbRS485.StyleController = this.layoutControl1; + this.RbRS485.TabIndex = 18; + this.RbRS485.TabStop = false; + this.RbRS485.CheckStateChanged += new System.EventHandler(this.RbRS485_CheckStateChanged); + // + // CbSnmpModel + // + this.CbSnmpModel.EditValue = "LFPS-48100D"; + this.CbSnmpModel.Location = new System.Drawing.Point(146, 128); + this.CbSnmpModel.Name = "CbSnmpModel"; + this.CbSnmpModel.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.CbSnmpModel.Properties.Appearance.Options.UseFont = true; + this.CbSnmpModel.Properties.Appearance.Options.UseTextOptions = true; + this.CbSnmpModel.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.CbSnmpModel.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.CbSnmpModel.Properties.Items.AddRange(new object[] { + "LFPR-481000S-J"}); + this.CbSnmpModel.Size = new System.Drawing.Size(308, 24); + this.CbSnmpModel.StyleController = this.layoutControl1; + this.CbSnmpModel.TabIndex = 17; + // + // teTargetIP + // + this.teTargetIP.AllowInternalTab = false; + this.teTargetIP.AutoHeight = true; + this.teTargetIP.BackColor = System.Drawing.SystemColors.Window; + this.teTargetIP.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.teTargetIP.Cursor = System.Windows.Forms.Cursors.IBeam; + this.teTargetIP.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.teTargetIP.Location = new System.Drawing.Point(146, 98); + this.teTargetIP.MinimumSize = new System.Drawing.Size(117, 26); + this.teTargetIP.Name = "teTargetIP"; + this.teTargetIP.ReadOnly = false; + this.teTargetIP.Size = new System.Drawing.Size(308, 26); + this.teTargetIP.TabIndex = 16; + this.teTargetIP.Text = "192.168.0.200"; + // + // RbSnmp + // + this.RbSnmp.Location = new System.Drawing.Point(305, 37); + this.RbSnmp.Name = "RbSnmp"; + this.RbSnmp.Properties.Caption = "SNMP"; + this.RbSnmp.Properties.CheckBoxOptions.Style = DevExpress.XtraEditors.Controls.CheckBoxStyle.Radio; + this.RbSnmp.Properties.RadioGroupIndex = 1; + this.RbSnmp.Size = new System.Drawing.Size(141, 20); + this.RbSnmp.StyleController = this.layoutControl1; + this.RbSnmp.TabIndex = 15; + this.RbSnmp.TabStop = false; + this.RbSnmp.CheckedChanged += new System.EventHandler(this.RbSnmp_CheckedChanged); + // + // edRecvWaitTime + // + this.edRecvWaitTime.EditValue = "100"; + this.edRecvWaitTime.Location = new System.Drawing.Point(146, 269); + this.edRecvWaitTime.Name = "edRecvWaitTime"; + this.edRecvWaitTime.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.edRecvWaitTime.Properties.Appearance.Options.UseFont = true; + this.edRecvWaitTime.Properties.Appearance.Options.UseTextOptions = true; + this.edRecvWaitTime.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.edRecvWaitTime.Size = new System.Drawing.Size(308, 24); + this.edRecvWaitTime.StyleController = this.layoutControl1; + this.edRecvWaitTime.TabIndex = 14; + // + // cbUartModel + // + this.cbUartModel.EditValue = "LFPS-48100D"; + this.cbUartModel.Location = new System.Drawing.Point(146, 213); + this.cbUartModel.Name = "cbUartModel"; + this.cbUartModel.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.cbUartModel.Properties.Appearance.Options.UseFont = true; + this.cbUartModel.Properties.Appearance.Options.UseTextOptions = true; + this.cbUartModel.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cbUartModel.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.cbUartModel.Properties.Items.AddRange(new object[] { + "LFPS-48100S-J"}); + this.cbUartModel.Size = new System.Drawing.Size(308, 24); + this.cbUartModel.StyleController = this.layoutControl1; + this.cbUartModel.TabIndex = 11; + // + // RbUart + // + this.RbUart.Location = new System.Drawing.Point(16, 37); + this.RbUart.Name = "RbUart"; + this.RbUart.Properties.Caption = "RS-232"; + this.RbUart.Properties.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Radio; + this.RbUart.Properties.RadioGroupIndex = 1; + this.RbUart.Size = new System.Drawing.Size(141, 20); + this.RbUart.StyleController = this.layoutControl1; + this.RbUart.TabIndex = 8; + this.RbUart.TabStop = false; + this.RbUart.CheckStateChanged += new System.EventHandler(this.RbUart_CheckStateChanged); + // + // cbUartPort + // + this.cbUartPort.EditValue = ""; + this.cbUartPort.Location = new System.Drawing.Point(146, 185); + this.cbUartPort.Name = "cbUartPort"; + this.cbUartPort.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.cbUartPort.Properties.Appearance.Options.UseFont = true; + this.cbUartPort.Properties.Appearance.Options.UseTextOptions = true; + this.cbUartPort.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cbUartPort.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.cbUartPort.Size = new System.Drawing.Size(308, 24); + this.cbUartPort.StyleController = this.layoutControl1; + this.cbUartPort.TabIndex = 6; + // + // cbDbLogPeriod + // + this.cbDbLogPeriod.EditValue = "1"; + this.cbDbLogPeriod.Location = new System.Drawing.Point(145, 345); + this.cbDbLogPeriod.Name = "cbDbLogPeriod"; + this.cbDbLogPeriod.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.cbDbLogPeriod.Properties.Appearance.Options.UseFont = true; + this.cbDbLogPeriod.Properties.Appearance.Options.UseTextOptions = true; + this.cbDbLogPeriod.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cbDbLogPeriod.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.cbDbLogPeriod.Properties.Items.AddRange(new object[] { + "1", + "5", + "10", + "15", + "30", + "60"}); + this.cbDbLogPeriod.Size = new System.Drawing.Size(310, 24); + this.cbDbLogPeriod.StyleController = this.layoutControl1; + this.cbDbLogPeriod.TabIndex = 9; + // + // btnClose + // + this.btnClose.Appearance.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnClose.Appearance.Options.UseFont = true; + this.btnClose.Location = new System.Drawing.Point(233, 418); + this.btnClose.Name = "btnClose"; + this.btnClose.Size = new System.Drawing.Size(225, 36); + this.btnClose.StyleController = this.layoutControl1; + this.btnClose.TabIndex = 7; + this.btnClose.Text = "CLOSE"; + this.btnClose.Click += new System.EventHandler(this.btnClose_Click); + // + // btnSave + // + this.btnSave.Appearance.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnSave.Appearance.Options.UseFont = true; + this.btnSave.Location = new System.Drawing.Point(4, 418); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(225, 36); + this.btnSave.StyleController = this.layoutControl1; + this.btnSave.TabIndex = 6; + this.btnSave.Text = "SAVE"; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem12, + this.layoutControlItem13, + this.gbDbConfig, + this.emptySpaceItem2, + this.layoutControlGroup4, + this.LcGroupUart, + this.emptySpaceItem1, + this.LcGroupSnmp}); + this.layoutControlGroup1.Name = "Root"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2); + this.layoutControlGroup1.Size = new System.Drawing.Size(462, 458); + this.layoutControlGroup1.TextVisible = false; + // + // layoutControlItem12 + // + this.layoutControlItem12.Control = this.btnSave; + this.layoutControlItem12.CustomizationFormText = "layoutControlItem12"; + this.layoutControlItem12.Location = new System.Drawing.Point(0, 414); + this.layoutControlItem12.MaxSize = new System.Drawing.Size(0, 40); + this.layoutControlItem12.MinSize = new System.Drawing.Size(93, 40); + this.layoutControlItem12.Name = "layoutControlItem12"; + this.layoutControlItem12.Size = new System.Drawing.Size(229, 40); + this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem12.TextVisible = false; + // + // layoutControlItem13 + // + this.layoutControlItem13.Control = this.btnClose; + this.layoutControlItem13.CustomizationFormText = "layoutControlItem13"; + this.layoutControlItem13.Location = new System.Drawing.Point(229, 414); + this.layoutControlItem13.MaxSize = new System.Drawing.Size(0, 40); + this.layoutControlItem13.MinSize = new System.Drawing.Size(93, 40); + this.layoutControlItem13.Name = "layoutControlItem13"; + this.layoutControlItem13.Size = new System.Drawing.Size(229, 40); + this.layoutControlItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem13.TextVisible = false; + // + // gbDbConfig + // + this.gbDbConfig.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.lbDbLogPeriod, + this.layoutControlItem15}); + this.gbDbConfig.Location = new System.Drawing.Point(0, 317); + this.gbDbConfig.Name = "gbDbConfig"; + this.gbDbConfig.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.gbDbConfig.Size = new System.Drawing.Size(458, 55); + this.gbDbConfig.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.gbDbConfig.Text = "Database Config"; + // + // lbDbLogPeriod + // + this.lbDbLogPeriod.AllowHotTrack = false; + this.lbDbLogPeriod.Location = new System.Drawing.Point(0, 0); + this.lbDbLogPeriod.MinSize = new System.Drawing.Size(138, 18); + this.lbDbLogPeriod.Name = "lbDbLogPeriod"; + this.lbDbLogPeriod.Size = new System.Drawing.Size(138, 28); + this.lbDbLogPeriod.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lbDbLogPeriod.Text = " DB Log Period"; + this.lbDbLogPeriod.TextSize = new System.Drawing.Size(123, 14); + // + // layoutControlItem15 + // + this.layoutControlItem15.Control = this.cbDbLogPeriod; + this.layoutControlItem15.Location = new System.Drawing.Point(138, 0); + this.layoutControlItem15.MaxSize = new System.Drawing.Size(0, 28); + this.layoutControlItem15.MinSize = new System.Drawing.Size(54, 28); + this.layoutControlItem15.Name = "layoutControlItem15"; + this.layoutControlItem15.Size = new System.Drawing.Size(314, 28); + this.layoutControlItem15.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem15.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem15.TextVisible = false; + // + // emptySpaceItem2 + // + this.emptySpaceItem2.AllowHotTrack = false; + this.emptySpaceItem2.Location = new System.Drawing.Point(0, 372); + this.emptySpaceItem2.Name = "emptySpaceItem2"; + this.emptySpaceItem2.Size = new System.Drawing.Size(458, 42); + this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlGroup4 + // + this.layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem3, + this.layoutControlItem7, + this.layoutControlItem5}); + this.layoutControlGroup4.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup4.Name = "layoutControlGroup4"; + this.layoutControlGroup4.Size = new System.Drawing.Size(458, 69); + this.layoutControlGroup4.Text = "Comm. Type"; + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.RbUart; + this.layoutControlItem3.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(145, 24); + this.layoutControlItem3.Text = "Comm. Type"; + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextVisible = false; + // + // layoutControlItem7 + // + this.layoutControlItem7.Control = this.RbSnmp; + this.layoutControlItem7.Location = new System.Drawing.Point(289, 0); + this.layoutControlItem7.Name = "layoutControlItem7"; + this.layoutControlItem7.Size = new System.Drawing.Size(145, 24); + this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem7.TextVisible = false; + // + // layoutControlItem5 + // + this.layoutControlItem5.Control = this.RbRS485; + this.layoutControlItem5.Location = new System.Drawing.Point(145, 0); + this.layoutControlItem5.Name = "layoutControlItem5"; + this.layoutControlItem5.Size = new System.Drawing.Size(144, 24); + this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem5.TextVisible = false; + // + // LcGroupUart + // + this.LcGroupUart.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.simpleLabelItem3, + this.layoutControlItem1, + this.simpleLabelItem4, + this.layoutControlItem4, + this.simpleLabelItem2, + this.layoutControlItem6, + this.layoutControlItem9, + this.simpleLabelItem5}); + this.LcGroupUart.Location = new System.Drawing.Point(0, 156); + this.LcGroupUart.Name = "LcGroupUart"; + this.LcGroupUart.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.LcGroupUart.Size = new System.Drawing.Size(458, 141); + this.LcGroupUart.Text = "RS-232 && RS-485 Config"; + // + // simpleLabelItem3 + // + this.simpleLabelItem3.AllowHotTrack = false; + this.simpleLabelItem3.Location = new System.Drawing.Point(0, 0); + this.simpleLabelItem3.MinSize = new System.Drawing.Size(138, 18); + this.simpleLabelItem3.Name = "simpleLabelItem3"; + this.simpleLabelItem3.Size = new System.Drawing.Size(138, 28); + this.simpleLabelItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem3.Text = " Serial Port"; + this.simpleLabelItem3.TextSize = new System.Drawing.Size(123, 14); + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.cbUartPort; + this.layoutControlItem1.Location = new System.Drawing.Point(138, 0); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(312, 28); + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // simpleLabelItem4 + // + this.simpleLabelItem4.AllowHotTrack = false; + this.simpleLabelItem4.Location = new System.Drawing.Point(0, 28); + this.simpleLabelItem4.MinSize = new System.Drawing.Size(138, 18); + this.simpleLabelItem4.Name = "simpleLabelItem4"; + this.simpleLabelItem4.Size = new System.Drawing.Size(138, 28); + this.simpleLabelItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem4.Text = " Model"; + this.simpleLabelItem4.TextSize = new System.Drawing.Size(123, 14); + // + // layoutControlItem4 + // + this.layoutControlItem4.Control = this.cbUartModel; + this.layoutControlItem4.Location = new System.Drawing.Point(138, 28); + this.layoutControlItem4.Name = "layoutControlItem4"; + this.layoutControlItem4.Size = new System.Drawing.Size(312, 28); + this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem4.TextVisible = false; + // + // simpleLabelItem2 + // + this.simpleLabelItem2.AllowHotTrack = false; + this.simpleLabelItem2.Location = new System.Drawing.Point(0, 84); + this.simpleLabelItem2.MinSize = new System.Drawing.Size(138, 18); + this.simpleLabelItem2.Name = "simpleLabelItem2"; + this.simpleLabelItem2.Size = new System.Drawing.Size(138, 28); + this.simpleLabelItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem2.Text = " Recv Wait Time (ms)"; + this.simpleLabelItem2.TextSize = new System.Drawing.Size(123, 14); + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.edRecvWaitTime; + this.layoutControlItem6.Location = new System.Drawing.Point(138, 84); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(312, 28); + this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem6.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.Location = new System.Drawing.Point(0, 297); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(458, 20); + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // LcGroupSnmp + // + this.LcGroupSnmp.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem8, + this.simpleLabelItem6, + this.layoutControlItem2, + this.simpleLabelItem1}); + this.LcGroupSnmp.Location = new System.Drawing.Point(0, 69); + this.LcGroupSnmp.Name = "LcGroupSnmp"; + this.LcGroupSnmp.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.LcGroupSnmp.Size = new System.Drawing.Size(458, 87); + this.LcGroupSnmp.Text = "SNMP Config"; + // + // layoutControlItem8 + // + this.layoutControlItem8.Control = this.teTargetIP; + this.layoutControlItem8.Location = new System.Drawing.Point(138, 0); + this.layoutControlItem8.Name = "layoutControlItem8"; + this.layoutControlItem8.Size = new System.Drawing.Size(312, 30); + this.layoutControlItem8.Text = " IP Address"; + this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem8.TextVisible = false; + // + // simpleLabelItem6 + // + this.simpleLabelItem6.AllowHotTrack = false; + this.simpleLabelItem6.Location = new System.Drawing.Point(0, 0); + this.simpleLabelItem6.MaxSize = new System.Drawing.Size(0, 30); + this.simpleLabelItem6.MinSize = new System.Drawing.Size(138, 30); + this.simpleLabelItem6.Name = "simpleLabelItem6"; + this.simpleLabelItem6.Size = new System.Drawing.Size(138, 30); + this.simpleLabelItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem6.Text = " IP Address"; + this.simpleLabelItem6.TextSize = new System.Drawing.Size(123, 14); + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.CbSnmpModel; + this.layoutControlItem2.Location = new System.Drawing.Point(138, 30); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(312, 28); + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // simpleLabelItem1 + // + this.simpleLabelItem1.AllowHotTrack = false; + this.simpleLabelItem1.Location = new System.Drawing.Point(0, 30); + this.simpleLabelItem1.MaxSize = new System.Drawing.Size(0, 28); + this.simpleLabelItem1.MinSize = new System.Drawing.Size(127, 28); + this.simpleLabelItem1.Name = "simpleLabelItem1"; + this.simpleLabelItem1.Size = new System.Drawing.Size(138, 28); + this.simpleLabelItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem1.Text = " Model"; + this.simpleLabelItem1.TextSize = new System.Drawing.Size(123, 14); + // + // layoutControlGroup2 + // + this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2"; + this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup2.GroupBordersVisible = false; + this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup2.Name = "Root"; + this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5); + this.layoutControlGroup2.Size = new System.Drawing.Size(433, 34); + this.layoutControlGroup2.TextVisible = false; + // + // layoutControlGroup3 + // + this.layoutControlGroup3.CustomizationFormText = "layoutControlGroup3"; + this.layoutControlGroup3.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup3.GroupBordersVisible = false; + this.layoutControlGroup3.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup3.Name = "Root"; + this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup3.Size = new System.Drawing.Size(433, 85); + this.layoutControlGroup3.TextVisible = false; + // + // CbModuleQty + // + this.CbModuleQty.EditValue = "1"; + this.CbModuleQty.Location = new System.Drawing.Point(146, 241); + this.CbModuleQty.Name = "CbModuleQty"; + this.CbModuleQty.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.CbModuleQty.Properties.Appearance.Options.UseFont = true; + this.CbModuleQty.Properties.Appearance.Options.UseTextOptions = true; + this.CbModuleQty.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.CbModuleQty.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.CbModuleQty.Size = new System.Drawing.Size(308, 24); + this.CbModuleQty.StyleController = this.layoutControl1; + this.CbModuleQty.TabIndex = 19; + // + // layoutControlItem9 + // + this.layoutControlItem9.Control = this.CbModuleQty; + this.layoutControlItem9.Location = new System.Drawing.Point(138, 56); + this.layoutControlItem9.MinSize = new System.Drawing.Size(55, 28); + this.layoutControlItem9.Name = "layoutControlItem9"; + this.layoutControlItem9.Size = new System.Drawing.Size(312, 28); + this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem9.TextVisible = false; + // + // simpleLabelItem5 + // + this.simpleLabelItem5.AllowHotTrack = false; + this.simpleLabelItem5.Location = new System.Drawing.Point(0, 56); + this.simpleLabelItem5.MaxSize = new System.Drawing.Size(0, 28); + this.simpleLabelItem5.MinSize = new System.Drawing.Size(127, 28); + this.simpleLabelItem5.Name = "simpleLabelItem5"; + this.simpleLabelItem5.Size = new System.Drawing.Size(138, 28); + this.simpleLabelItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem5.Text = " Module Q\'ty"; + this.simpleLabelItem5.TextSize = new System.Drawing.Size(123, 14); + // + // ucCommConfig + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.layoutControl1); + this.Name = "ucCommConfig"; + this.Size = new System.Drawing.Size(462, 458); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.RbRS485.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.CbSnmpModel.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.RbSnmp.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.edRecvWaitTime.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbUartModel.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.RbUart.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbUartPort.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbDbLogPeriod.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbDbConfig)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbDbLogPeriod)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.LcGroupUart)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.LcGroupSnmp)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.CbModuleQty.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem5)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraEditors.SimpleButton btnClose; + private DevExpress.XtraEditors.SimpleButton btnSave; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13; + private DevExpress.XtraEditors.ComboBoxEdit cbDbLogPeriod; + private DevExpress.XtraLayout.LayoutControlGroup gbDbConfig; + private DevExpress.XtraLayout.SimpleLabelItem lbDbLogPeriod; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem15; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2; + private DevExpress.XtraEditors.ComboBoxEdit cbUartPort; + private DevExpress.XtraEditors.CheckEdit RbUart; + private DevExpress.XtraEditors.ComboBoxEdit cbUartModel; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraLayout.LayoutControlGroup LcGroupUart; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem3; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem4; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem2; + private DevExpress.XtraEditors.TextEdit edRecvWaitTime; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private DevExpress.XtraEditors.CheckEdit RbSnmp; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7; + private IPAddressControlLib.IPAddressControl teTargetIP; + private DevExpress.XtraLayout.LayoutControlGroup LcGroupSnmp; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem6; + private DevExpress.XtraEditors.ComboBoxEdit CbSnmpModel; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem1; + private DevExpress.XtraEditors.CheckEdit RbRS485; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraEditors.ComboBoxEdit CbModuleQty; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem5; + } +} diff --git a/LFP_Manager/Controls/ucCommConfig.cs b/LFP_Manager/Controls/ucCommConfig.cs new file mode 100644 index 0000000..454b658 --- /dev/null +++ b/LFP_Manager/Controls/ucCommConfig.cs @@ -0,0 +1,237 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Linq; +using System.Windows.Forms; +using DevExpress.XtraEditors; + +using System.Runtime.InteropServices; +using System.IO; +using System.IO.Ports; + +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using System.Data.Entity.Infrastructure; + +namespace LFP_Manager.Controls +{ + public partial class ucCommConfig : DevExpress.XtraEditors.XtraUserControl + { + #region EVENT + + public delegate void CloseEvent(object aConfig, bool saved); + + #endregion + + #region VARIABLES + + CommConfig Config = new CommConfig(); + public event CloseEvent OnClose = null; + + DataTable dtComport = new DataTable(); + private bool saved = false; + + #endregion + + #region CONSTRUCTORS + + public ucCommConfig() + { + InitializeComponent(); + + CommPortLoad(); + + IniLoad(); + } + + private void InitComportDataTable() + { + dtComport = new DataTable(); + dtComport.Columns.Add("name", typeof(string)); + dtComport.Columns.Add("name2", typeof(string)); + } + + #endregion + + #region DATA LOAD AND SAVE + + private void CommPortLoad() + { + bool found = false; + int ComId = 0; + + InitComportDataTable(); + foreach (string comport in SerialPort.GetPortNames()) + { + DataRow aRow = dtComport.NewRow(); + aRow["name"] = comport; + dtComport.Rows.Add(aRow); + } + + for (int i = 0; i < dtComport.Rows.Count; i++) + { + cbUartPort.Properties.Items.Add(dtComport.Rows[i]["name"].ToString()); + } + + if (Config.UartPort != "") + { + for (int i = 0; i < cbUartPort.Properties.Items.Count; i++) + { + if (dtComport.Rows[i]["name"].ToString() == Config.UartPort) + { + found = true; + ComId = i; + break; + } + } + } + + if (found) + { + cbUartPort.SelectedIndex = ComId; + Config.UartPort = cbUartPort.Properties.Items[ComId].ToString(); + } + else + { + if (cbUartPort.Properties.Items.Count > 0) + { + cbUartPort.SelectedIndex = 0; + } + } + } + + private void IniLoad() + { + csIniControlFunction.IniLoad(Application.ExecutablePath, ref Config); + + cbUartModel.Properties.Items.Clear(); + CbSnmpModel.Properties.Items.Clear(); + foreach (string m_name in csConstData.MODEL_STR) + { + cbUartModel.Properties.Items.Add(m_name); + CbSnmpModel.Properties.Items.Add(m_name); + } + CbModuleQty.Properties.Items.Clear(); + for (int i = 0; i < csConstData.SystemInfo.MAX_MODULE_SIZE; i++) + { + CbModuleQty.Properties.Items.Add(string.Format("{0}", i + 1)); + } + + switch (Config.CommType) + { + case csConstData.CommType.COMM_UART: + RbUart.Checked = true; + break; + case csConstData.CommType.COMM_RS485: + RbRS485.Checked = true; + break; + case csConstData.CommType.COMM_SNMP: + RbSnmp.Checked = true; + break; + default: + RbUart.Checked = true; + break; + } + + if (Config.SnmpIP == "") + { Config.SnmpIP = teTargetIP.Text; } + teTargetIP.Text = Config.SnmpIP; + CbSnmpModel.SelectedIndex = Config.SnmpModelIndex; + + cbUartPort.Text = Config.UartPort; + cbUartModel.SelectedIndex = Config.UartModelIndex; + CbModuleQty.Text = string.Format("{0}", Config.ModuleQty); + edRecvWaitTime.Text = string.Format("{0}", Config.RecvWaitTime); + + cbDbLogPeriod.Text = Config.DbLogPeriod.ToString(); + } + + private void IniSave() + { + if (RbUart.Checked) + { + Config.CommType = csConstData.CommType.COMM_UART; + } + else if (RbRS485.Checked) + { + Config.CommType = csConstData.CommType.COMM_RS485; + } + else if (RbSnmp.Checked) + { + Config.CommType = csConstData.CommType.COMM_SNMP; + } + + try + { + Config.SnmpIP = teTargetIP.Text; + Config.SnmpModelIndex = CbSnmpModel.SelectedIndex; + + Config.UartPort = cbUartPort.Text; + Config.UartModelIndex = cbUartModel.SelectedIndex; + Config.ModuleQty = Convert.ToInt32(CbModuleQty.Text); + Config.RecvWaitTime = Convert.ToInt32(edRecvWaitTime.Text); + + Config.DbLogPeriod = Convert.ToInt32(cbDbLogPeriod.Text); + + csIniControlFunction.IniSave(Application.ExecutablePath, Config); + + saved = true; + } + catch (Exception) + { + MessageBox.Show("Save fail - Please check config", "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + #endregion + + #region BUTTON EVENT + private void btnClose_Click(object sender, EventArgs e) + { + OnClose?.Invoke(Config, saved); + } + + private void btnSave_Click(object sender, EventArgs e) + { + IniSave(); + } + #endregion + + #region COMPONENT EVENT + private void RbUart_CheckStateChanged(object sender, EventArgs e) + { + if (RbUart.Checked) + { + LcGroupUart.Enabled = true; + LcGroupSnmp.Enabled = false; + CbModuleQty.Enabled = false; + CbModuleQty.Text = "1"; + } + } + + private void RbRS485_CheckStateChanged(object sender, EventArgs e) + { + if (RbRS485.Checked) + { + LcGroupUart.Enabled = true; + LcGroupSnmp.Enabled = false; + CbModuleQty.Enabled = true; + } + } + + private void RbSnmp_CheckedChanged(object sender, EventArgs e) + { + if (RbSnmp.Checked) + { + LcGroupUart.Enabled = false; + LcGroupSnmp.Enabled = true; + CbModuleQty.Enabled = true; + CbModuleQty.Text = "1"; + } + } + #endregion + } +} diff --git a/LFP_Manager/Controls/ucCommConfig.resx b/LFP_Manager/Controls/ucCommConfig.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/LFP_Manager/Controls/ucCommConfig.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LFP_Manager/Controls/ucDataLog.Designer.cs b/LFP_Manager/Controls/ucDataLog.Designer.cs new file mode 100644 index 0000000..757ffa7 --- /dev/null +++ b/LFP_Manager/Controls/ucDataLog.Designer.cs @@ -0,0 +1,257 @@ +namespace LFP_Manager.Controls +{ + partial class ucDataLog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.gbDataLog = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl6 = new DevExpress.XtraLayout.LayoutControl(); + this.btnOpenLogFolder = new DevExpress.XtraEditors.SimpleButton(); + this.btnLogStart = new DevExpress.XtraEditors.SimpleButton(); + this.cbLogTime = new DevExpress.XtraEditors.ComboBoxEdit(); + this.layoutControlGroup6 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.lcitemLogTime = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.tmrLogging = new System.Windows.Forms.Timer(this.components); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.gbDataLog)).BeginInit(); + this.gbDataLog.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl6)).BeginInit(); + this.layoutControl6.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.cbLogTime.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemLogTime)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.AllowCustomization = false; + this.layoutControl1.Controls.Add(this.gbDataLog); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(354, 204); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // gbDataLog + // + this.gbDataLog.Controls.Add(this.layoutControl6); + this.gbDataLog.Location = new System.Drawing.Point(3, 3); + this.gbDataLog.Name = "gbDataLog"; + this.gbDataLog.Size = new System.Drawing.Size(348, 198); + this.gbDataLog.TabIndex = 9; + this.gbDataLog.Text = "Data Logging"; + // + // layoutControl6 + // + this.layoutControl6.AllowCustomization = false; + this.layoutControl6.Controls.Add(this.btnOpenLogFolder); + this.layoutControl6.Controls.Add(this.btnLogStart); + this.layoutControl6.Controls.Add(this.cbLogTime); + this.layoutControl6.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl6.Location = new System.Drawing.Point(2, 23); + this.layoutControl6.Name = "layoutControl6"; + this.layoutControl6.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1209, 389, 250, 350); + this.layoutControl6.Root = this.layoutControlGroup6; + this.layoutControl6.Size = new System.Drawing.Size(344, 173); + this.layoutControl6.TabIndex = 0; + this.layoutControl6.Text = "layoutControl6"; + // + // btnOpenLogFolder + // + this.btnOpenLogFolder.Location = new System.Drawing.Point(3, 108); + this.btnOpenLogFolder.Name = "btnOpenLogFolder"; + this.btnOpenLogFolder.Size = new System.Drawing.Size(338, 62); + this.btnOpenLogFolder.StyleController = this.layoutControl6; + this.btnOpenLogFolder.TabIndex = 6; + this.btnOpenLogFolder.Text = "Open Log Folder"; + this.btnOpenLogFolder.Click += new System.EventHandler(this.btnOpenLogFolder_Click); + // + // btnLogStart + // + this.btnLogStart.Location = new System.Drawing.Point(3, 37); + this.btnLogStart.Name = "btnLogStart"; + this.btnLogStart.Size = new System.Drawing.Size(338, 67); + this.btnLogStart.StyleController = this.layoutControl6; + this.btnLogStart.TabIndex = 5; + this.btnLogStart.Text = "Log Start"; + this.btnLogStart.Click += new System.EventHandler(this.btnLogStart_Click); + // + // cbLogTime + // + this.cbLogTime.EditValue = "5"; + this.cbLogTime.Location = new System.Drawing.Point(68, 3); + this.cbLogTime.Name = "cbLogTime"; + this.cbLogTime.Properties.Appearance.Options.UseTextOptions = true; + this.cbLogTime.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cbLogTime.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.cbLogTime.Properties.Items.AddRange(new object[] { + "1", + "5", + "10", + "15", + "30", + "60"}); + this.cbLogTime.Size = new System.Drawing.Size(273, 20); + this.cbLogTime.StyleController = this.layoutControl6; + this.cbLogTime.TabIndex = 4; + // + // layoutControlGroup6 + // + this.layoutControlGroup6.CustomizationFormText = "layoutControlGroup6"; + this.layoutControlGroup6.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup6.GroupBordersVisible = false; + this.layoutControlGroup6.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.lcitemLogTime, + this.layoutControlItem13, + this.layoutControlItem12}); + this.layoutControlGroup6.Name = "layoutControlGroup6"; + this.layoutControlGroup6.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup6.Size = new System.Drawing.Size(344, 173); + this.layoutControlGroup6.TextVisible = false; + // + // lcitemLogTime + // + this.lcitemLogTime.AppearanceItemCaption.Options.UseTextOptions = true; + this.lcitemLogTime.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lcitemLogTime.Control = this.cbLogTime; + this.lcitemLogTime.CustomizationFormText = "Log Time"; + this.lcitemLogTime.Location = new System.Drawing.Point(0, 0); + this.lcitemLogTime.MinSize = new System.Drawing.Size(119, 24); + this.lcitemLogTime.Name = "lcitemLogTime"; + this.lcitemLogTime.Size = new System.Drawing.Size(342, 34); + this.lcitemLogTime.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemLogTime.Text = "Log Time"; + this.lcitemLogTime.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.lcitemLogTime.TextSize = new System.Drawing.Size(60, 20); + this.lcitemLogTime.TextToControlDistance = 5; + // + // layoutControlItem13 + // + this.layoutControlItem13.Control = this.btnLogStart; + this.layoutControlItem13.CustomizationFormText = "layoutControlItem13"; + this.layoutControlItem13.Location = new System.Drawing.Point(0, 34); + this.layoutControlItem13.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem13.Name = "layoutControlItem13"; + this.layoutControlItem13.Size = new System.Drawing.Size(342, 71); + this.layoutControlItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem13.TextVisible = false; + // + // layoutControlItem12 + // + this.layoutControlItem12.Control = this.btnOpenLogFolder; + this.layoutControlItem12.CustomizationFormText = "layoutControlItem12"; + this.layoutControlItem12.Location = new System.Drawing.Point(0, 105); + this.layoutControlItem12.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem12.Name = "layoutControlItem12"; + this.layoutControlItem12.Size = new System.Drawing.Size(342, 66); + this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem12.TextVisible = false; + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem1}); + this.layoutControlGroup1.Name = "layoutControlGroup1"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup1.Size = new System.Drawing.Size(354, 204); + this.layoutControlGroup1.TextVisible = false; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.gbDataLog; + this.layoutControlItem1.CustomizationFormText = "layoutControlItem1"; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(352, 202); + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // tmrLogging + // + this.tmrLogging.Interval = 500; + this.tmrLogging.Tick += new System.EventHandler(this.tmrLogging_Tick); + // + // ucDataLog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.layoutControl1); + this.Name = "ucDataLog"; + this.Size = new System.Drawing.Size(354, 204); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.gbDataLog)).EndInit(); + this.gbDataLog.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl6)).EndInit(); + this.layoutControl6.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.cbLogTime.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemLogTime)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraEditors.GroupControl gbDataLog; + private DevExpress.XtraLayout.LayoutControl layoutControl6; + private DevExpress.XtraEditors.SimpleButton btnOpenLogFolder; + private DevExpress.XtraEditors.SimpleButton btnLogStart; + private DevExpress.XtraEditors.ComboBoxEdit cbLogTime; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup6; + private DevExpress.XtraLayout.LayoutControlItem lcitemLogTime; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private System.Windows.Forms.Timer tmrLogging; + } +} diff --git a/LFP_Manager/Controls/ucDataLog.cs b/LFP_Manager/Controls/ucDataLog.cs new file mode 100644 index 0000000..fcd1f5c --- /dev/null +++ b/LFP_Manager/Controls/ucDataLog.cs @@ -0,0 +1,155 @@ +using LFP_Manager.DataStructure; +using LFP_Manager.Utils; +using System; +using System.Windows.Forms; + +namespace LFP_Manager.Controls +{ + public delegate void LogDataUpdate(object sender, string LogResult, bool active, int aLogTime); + + public partial class ucDataLog : DevExpress.XtraEditors.XtraUserControl + { + #region VARIABLES + + private CommConfig Config; + private DeviceSystemData[] SystemData; + private DateTime bakDateTime; + + private int ModuleID = 1; + + private string LogFileName = ""; + private string LogFileNameTotal = ""; + + private bool logging = false; + private bool Active = false; + + public event LogDataUpdate OnUpdate = null; + + #endregion + + #region CONSTRUCTORS + + public ucDataLog() + { + InitializeComponent(); + } + + #endregion + + #region PUBLIC UPDATE + + public void UpdateActiveStatus(bool aStatus, int mID, CommConfig aConfig, DeviceSystemData[] aSystemData) + { + Active = aStatus; + ModuleID = mID; + Config = aConfig; + SystemData = aSystemData; + } + + public void UpdateData(DeviceSystemData[] aSystemData) + { + SystemData = aSystemData; + } + + #endregion + + #region TIMER EVENT + + private void tmrLogging_Tick(object sender, EventArgs e) + { + DateTime cDate = DateTime.Now; + int ss; + + if ((logging) && (Active)) + { + ss = Convert.ToInt16(cbLogTime.Text); + + if ( + ((bakDateTime.Minute != cDate.Minute) + || (bakDateTime.Second != cDate.Second)) + && ((cDate.Second % ss) == 0) + ) + { + try + { + switch (Config.CommType) + { + case csConstData.CommType.COMM_UART: + csLog.SystemDataLog(ModuleID, Config, SystemData[ModuleID - 1], cDate, Application.ExecutablePath, LogFileName); + break; + case csConstData.CommType.COMM_RS485: + if (Config.ModuleQty > 1) + { + for (int i = 0; i < Config.ModuleQty; i++) + { + csLog.SystemDataLog(i + 1, Config, SystemData[i], cDate, Application.ExecutablePath, LogFileName); + } + } + else + { + csLog.SystemDataLog(ModuleID, Config, SystemData[ModuleID - 1], cDate, Application.ExecutablePath, LogFileName); + } + break; + case csConstData.CommType.COMM_SNMP: + csLog.SystemDataLog(1, Config, SystemData[0], cDate, Application.ExecutablePath, LogFileName); + break; + default: + break; + } + bakDateTime = cDate; + } + catch (Exception) + { + } + } + } + } + + #endregion + + #region BUTTON EVENT + + private void btnLogStart_Click(object sender, EventArgs e) + { + if (logging == true) + { + tmrLogging.Stop(); + cbLogTime.Enabled = true; + logging = false; + btnLogStart.Text = "Log Start"; + + if (OnUpdate != null) + { + OnUpdate(this, String.Format("LogStop: {0:yyyy/MM/dd HH:mm:ss}", DateTime.Now), false, Convert.ToInt16(cbLogTime.Text)); + } + } + else + { + LogFileNameTotal = String.Format("{0:yyMMddHHmmss}", DateTime.Now); + LogFileName = String.Format("{0:yyMMddHHmmss}", DateTime.Now); + tmrLogging.Start(); + cbLogTime.Enabled = false; + logging = true; + btnLogStart.Text = "Log Stop"; + + if (OnUpdate != null) + { + OnUpdate(this, String.Format("Logging: SHELFX_LOG_{0}.csv", LogFileName), true, Convert.ToInt16(cbLogTime.Text)); + } + } + } + + private void btnOpenLogFolder_Click(object sender, EventArgs e) + { + System.Diagnostics.Process ps = new System.Diagnostics.Process(); + ps.StartInfo.FileName = "explorer.exe"; + ps.StartInfo.Arguments = csLog.GetLogFolder(Application.ExecutablePath); + ps.StartInfo.WorkingDirectory = csLog.GetLogFolder(Application.ExecutablePath); + ps.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal; + + ps.Start(); + } + + #endregion + } +} diff --git a/LFP_Manager/Controls/ucDataLog.resx b/LFP_Manager/Controls/ucDataLog.resx new file mode 100644 index 0000000..92c9522 --- /dev/null +++ b/LFP_Manager/Controls/ucDataLog.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/LFP_Manager/Controls/ucEventLog.Designer.cs b/LFP_Manager/Controls/ucEventLog.Designer.cs new file mode 100644 index 0000000..6867e73 --- /dev/null +++ b/LFP_Manager/Controls/ucEventLog.Designer.cs @@ -0,0 +1,278 @@ +namespace LFP_Manager.Controls +{ + partial class ucEventLog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.gcLogging = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl(); + this.cbPacketLog = new DevExpress.XtraEditors.CheckEdit(); + this.btnLogClear = new DevExpress.XtraEditors.SimpleButton(); + this.tabDataLog = new DevExpress.XtraTab.XtraTabControl(); + this.tpDataLog = new DevExpress.XtraTab.XtraTabPage(); + this.panelControl1 = new DevExpress.XtraEditors.PanelControl(); + this.meDataLog = new DevExpress.XtraEditors.MemoEdit(); + this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcCheckEdit = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.gcLogging)).BeginInit(); + this.gcLogging.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit(); + this.layoutControl2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.cbPacketLog.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.tabDataLog)).BeginInit(); + this.tabDataLog.SuspendLayout(); + this.tpDataLog.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.panelControl1)).BeginInit(); + this.panelControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.meDataLog.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcCheckEdit)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.AllowCustomization = false; + this.layoutControl1.Controls.Add(this.gcLogging); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(302, 140, 250, 350); + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(799, 173); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // gcLogging + // + this.gcLogging.Controls.Add(this.layoutControl2); + this.gcLogging.Location = new System.Drawing.Point(3, 3); + this.gcLogging.Name = "gcLogging"; + this.gcLogging.Size = new System.Drawing.Size(793, 167); + this.gcLogging.TabIndex = 6; + this.gcLogging.Text = "Event"; + // + // layoutControl2 + // + this.layoutControl2.AllowCustomization = false; + this.layoutControl2.Controls.Add(this.cbPacketLog); + this.layoutControl2.Controls.Add(this.btnLogClear); + this.layoutControl2.Controls.Add(this.tabDataLog); + this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl2.Location = new System.Drawing.Point(2, 23); + this.layoutControl2.Name = "layoutControl2"; + this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1234, 235, 250, 350); + this.layoutControl2.Root = this.layoutControlGroup2; + this.layoutControl2.Size = new System.Drawing.Size(789, 142); + this.layoutControl2.TabIndex = 0; + this.layoutControl2.Text = "layoutControl2"; + // + // cbPacketLog + // + this.cbPacketLog.Location = new System.Drawing.Point(702, 4); + this.cbPacketLog.Name = "cbPacketLog"; + this.cbPacketLog.Properties.Caption = "Packet"; + this.cbPacketLog.Size = new System.Drawing.Size(83, 20); + this.cbPacketLog.StyleController = this.layoutControl2; + this.cbPacketLog.TabIndex = 6; + // + // btnLogClear + // + this.btnLogClear.Location = new System.Drawing.Point(702, 28); + this.btnLogClear.Name = "btnLogClear"; + this.btnLogClear.Size = new System.Drawing.Size(83, 110); + this.btnLogClear.StyleController = this.layoutControl2; + this.btnLogClear.TabIndex = 5; + this.btnLogClear.Text = "Clear"; + this.btnLogClear.Click += new System.EventHandler(this.btnLogClear_Click); + // + // tabDataLog + // + this.tabDataLog.Location = new System.Drawing.Point(4, 4); + this.tabDataLog.Name = "tabDataLog"; + this.tabDataLog.SelectedTabPage = this.tpDataLog; + this.tabDataLog.Size = new System.Drawing.Size(694, 134); + this.tabDataLog.TabIndex = 4; + this.tabDataLog.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] { + this.tpDataLog}); + // + // tpDataLog + // + this.tpDataLog.Controls.Add(this.panelControl1); + this.tpDataLog.Name = "tpDataLog"; + this.tpDataLog.Size = new System.Drawing.Size(692, 108); + this.tpDataLog.Text = "Data Log"; + // + // panelControl1 + // + this.panelControl1.Controls.Add(this.meDataLog); + this.panelControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panelControl1.Location = new System.Drawing.Point(0, 0); + this.panelControl1.Name = "panelControl1"; + this.panelControl1.Size = new System.Drawing.Size(692, 108); + this.panelControl1.TabIndex = 0; + // + // meDataLog + // + this.meDataLog.Dock = System.Windows.Forms.DockStyle.Fill; + this.meDataLog.Location = new System.Drawing.Point(2, 2); + this.meDataLog.Name = "meDataLog"; + this.meDataLog.Properties.MaxLength = 1000; + this.meDataLog.Size = new System.Drawing.Size(688, 104); + this.meDataLog.TabIndex = 0; + // + // layoutControlGroup2 + // + this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2"; + this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup2.GroupBordersVisible = false; + this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem6, + this.layoutControlItem14, + this.lcCheckEdit}); + this.layoutControlGroup2.Name = "layoutControlGroup2"; + this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2); + this.layoutControlGroup2.Size = new System.Drawing.Size(789, 142); + this.layoutControlGroup2.TextVisible = false; + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.tabDataLog; + this.layoutControlItem6.CustomizationFormText = "layoutControlItem6"; + this.layoutControlItem6.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem6.MinSize = new System.Drawing.Size(104, 24); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(698, 138); + this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem6.TextVisible = false; + // + // layoutControlItem14 + // + this.layoutControlItem14.Control = this.btnLogClear; + this.layoutControlItem14.CustomizationFormText = "layoutControlItem14"; + this.layoutControlItem14.Location = new System.Drawing.Point(698, 24); + this.layoutControlItem14.MinSize = new System.Drawing.Size(60, 26); + this.layoutControlItem14.Name = "layoutControlItem14"; + this.layoutControlItem14.Size = new System.Drawing.Size(87, 114); + this.layoutControlItem14.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem14.TextVisible = false; + // + // lcCheckEdit + // + this.lcCheckEdit.Control = this.cbPacketLog; + this.lcCheckEdit.CustomizationFormText = "lcCheckEdit"; + this.lcCheckEdit.Location = new System.Drawing.Point(698, 0); + this.lcCheckEdit.MinSize = new System.Drawing.Size(87, 23); + this.lcCheckEdit.Name = "lcCheckEdit"; + this.lcCheckEdit.Size = new System.Drawing.Size(87, 24); + this.lcCheckEdit.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcCheckEdit.TextSize = new System.Drawing.Size(0, 0); + this.lcCheckEdit.TextVisible = false; + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem1}); + this.layoutControlGroup1.Name = "layoutControlGroup1"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup1.Size = new System.Drawing.Size(799, 173); + this.layoutControlGroup1.TextVisible = false; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.gcLogging; + this.layoutControlItem1.CustomizationFormText = "layoutControlItem1"; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(797, 171); + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // ucEventLog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.layoutControl1); + this.Name = "ucEventLog"; + this.Size = new System.Drawing.Size(799, 173); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.gcLogging)).EndInit(); + this.gcLogging.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit(); + this.layoutControl2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.cbPacketLog.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.tabDataLog)).EndInit(); + this.tabDataLog.ResumeLayout(false); + this.tpDataLog.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.panelControl1)).EndInit(); + this.panelControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.meDataLog.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcCheckEdit)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraEditors.GroupControl gcLogging; + private DevExpress.XtraLayout.LayoutControl layoutControl2; + private DevExpress.XtraEditors.SimpleButton btnLogClear; + private DevExpress.XtraTab.XtraTabControl tabDataLog; + private DevExpress.XtraTab.XtraTabPage tpDataLog; + private DevExpress.XtraEditors.PanelControl panelControl1; + private DevExpress.XtraEditors.MemoEdit meDataLog; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraEditors.CheckEdit cbPacketLog; + private DevExpress.XtraLayout.LayoutControlItem lcCheckEdit; + } +} diff --git a/LFP_Manager/Controls/ucEventLog.cs b/LFP_Manager/Controls/ucEventLog.cs new file mode 100644 index 0000000..7de9ca7 --- /dev/null +++ b/LFP_Manager/Controls/ucEventLog.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Linq; +using System.Windows.Forms; +using DevExpress.XtraEditors; + +namespace LFP_Manager.Controls +{ + public partial class ucEventLog : DevExpress.XtraEditors.XtraUserControl + { + #region CONSTRUCTORS + + public ucEventLog() + { + InitializeComponent(); + } + + #endregion + + #region PUBLIC UPDATE + + public void EventUpdate(string aEvent) + { + if (this.InvokeRequired) + { + this.Invoke(new MethodInvoker(delegate () + { + if (cbPacketLog.Checked) + meDataLog.Text = aEvent + meDataLog.Text; + })); + } + else + { + if (cbPacketLog.Checked) + meDataLog.Text = aEvent + meDataLog.Text; + } + } + + #endregion + + #region ENVENT + + private void btnLogClear_Click(object sender, EventArgs e) + { + meDataLog.Text = ""; + } + + #endregion + } +} diff --git a/LFP_Manager/Controls/ucEventLog.resx b/LFP_Manager/Controls/ucEventLog.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/LFP_Manager/Controls/ucEventLog.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LFP_Manager/Controls/ucHistroy.Designer.cs b/LFP_Manager/Controls/ucHistroy.Designer.cs new file mode 100644 index 0000000..0a2d0d7 --- /dev/null +++ b/LFP_Manager/Controls/ucHistroy.Designer.cs @@ -0,0 +1,377 @@ +namespace LFP_Manager.Controls +{ + partial class ucHistroy + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.btnSearch = new System.Windows.Forms.Button(); + this.dtpEnd = new System.Windows.Forms.DateTimePicker(); + this.dtpStart = new System.Windows.Forms.DateTimePicker(); + this.xtcSearchResult = new DevExpress.XtraTab.XtraTabControl(); + this.pgGrid = new DevExpress.XtraTab.XtraTabPage(); + this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl(); + this.btnExportExcel = new DevExpress.XtraEditors.SimpleButton(); + this.gridSearchResult = new System.Windows.Forms.DataGridView(); + this.Root = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.lcgbSelectDatetime = new DevExpress.XtraLayout.LayoutControlGroup(); + this.slbStartDate = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.slbEndDate = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcgbSearchResult = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.DbWaitForm = new DevExpress.XtraSplashScreen.SplashScreenManager(this, typeof(global::LFP_Manager.Forms.fmxWait), true, true, typeof(System.Windows.Forms.UserControl)); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.xtcSearchResult)).BeginInit(); + this.xtcSearchResult.SuspendLayout(); + this.pgGrid.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit(); + this.layoutControl3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.gridSearchResult)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcgbSelectDatetime)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.slbStartDate)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.slbEndDate)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcgbSearchResult)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.btnSearch); + this.layoutControl1.Controls.Add(this.dtpEnd); + this.layoutControl1.Controls.Add(this.dtpStart); + this.layoutControl1.Controls.Add(this.xtcSearchResult); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(947, 249, 650, 400); + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(850, 635); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // btnSearch + // + this.btnSearch.Location = new System.Drawing.Point(592, 28); + this.btnSearch.Name = "btnSearch"; + this.btnSearch.Size = new System.Drawing.Size(251, 25); + this.btnSearch.TabIndex = 7; + this.btnSearch.Text = "SEARCH"; + this.btnSearch.UseVisualStyleBackColor = true; + this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click); + // + // dtpEnd + // + this.dtpEnd.CustomFormat = "yyyy-MM-dd HH:mm:ss"; + this.dtpEnd.Font = new System.Drawing.Font("Tahoma", 11F); + this.dtpEnd.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtpEnd.Location = new System.Drawing.Point(395, 28); + this.dtpEnd.Name = "dtpEnd"; + this.dtpEnd.Size = new System.Drawing.Size(193, 25); + this.dtpEnd.TabIndex = 6; + // + // dtpStart + // + this.dtpStart.CalendarFont = new System.Drawing.Font("Tahoma", 9F); + this.dtpStart.CustomFormat = "yyyy-MM-dd HH:mm:ss"; + this.dtpStart.Font = new System.Drawing.Font("Tahoma", 11F); + this.dtpStart.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtpStart.Location = new System.Drawing.Point(102, 28); + this.dtpStart.Name = "dtpStart"; + this.dtpStart.Size = new System.Drawing.Size(194, 25); + this.dtpStart.TabIndex = 5; + // + // xtcSearchResult + // + this.xtcSearchResult.Location = new System.Drawing.Point(7, 86); + this.xtcSearchResult.Name = "xtcSearchResult"; + this.xtcSearchResult.SelectedTabPage = this.pgGrid; + this.xtcSearchResult.Size = new System.Drawing.Size(836, 542); + this.xtcSearchResult.TabIndex = 4; + this.xtcSearchResult.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] { + this.pgGrid}); + // + // pgGrid + // + this.pgGrid.Controls.Add(this.layoutControl3); + this.pgGrid.Name = "pgGrid"; + this.pgGrid.Size = new System.Drawing.Size(834, 516); + this.pgGrid.Text = "Result Data"; + // + // layoutControl3 + // + this.layoutControl3.Controls.Add(this.btnExportExcel); + this.layoutControl3.Controls.Add(this.gridSearchResult); + this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl3.Location = new System.Drawing.Point(0, 0); + this.layoutControl3.Name = "layoutControl3"; + this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1120, 298, 650, 400); + this.layoutControl3.Root = this.Root; + this.layoutControl3.Size = new System.Drawing.Size(834, 516); + this.layoutControl3.TabIndex = 0; + this.layoutControl3.Text = "layoutControl3"; + // + // btnExportExcel + // + this.btnExportExcel.Location = new System.Drawing.Point(728, 481); + this.btnExportExcel.Name = "btnExportExcel"; + this.btnExportExcel.Size = new System.Drawing.Size(103, 32); + this.btnExportExcel.StyleController = this.layoutControl3; + this.btnExportExcel.TabIndex = 5; + this.btnExportExcel.Text = "Export Excel"; + this.btnExportExcel.Click += new System.EventHandler(this.btnExportExcel_Click); + // + // gridSearchResult + // + this.gridSearchResult.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.gridSearchResult.Location = new System.Drawing.Point(3, 3); + this.gridSearchResult.Name = "gridSearchResult"; + this.gridSearchResult.RowTemplate.Height = 23; + this.gridSearchResult.Size = new System.Drawing.Size(828, 474); + this.gridSearchResult.TabIndex = 4; + this.gridSearchResult.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.gridSearchResult_CellFormatting); + // + // Root + // + this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.Root.GroupBordersVisible = false; + this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem5, + this.layoutControlItem6, + this.emptySpaceItem1}); + this.Root.Name = "Root"; + this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.Root.Size = new System.Drawing.Size(834, 516); + this.Root.TextVisible = false; + // + // layoutControlItem5 + // + this.layoutControlItem5.Control = this.gridSearchResult; + this.layoutControlItem5.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem5.MinSize = new System.Drawing.Size(104, 24); + this.layoutControlItem5.Name = "layoutControlItem5"; + this.layoutControlItem5.Size = new System.Drawing.Size(832, 478); + this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem5.TextVisible = false; + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.btnExportExcel; + this.layoutControlItem6.Location = new System.Drawing.Point(725, 478); + this.layoutControlItem6.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(107, 36); + this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem6.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.Location = new System.Drawing.Point(0, 478); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(725, 36); + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.lcgbSelectDatetime, + this.lcgbSearchResult}); + this.layoutControlGroup1.Name = "Root"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup1.Size = new System.Drawing.Size(850, 635); + this.layoutControlGroup1.TextVisible = false; + // + // lcgbSelectDatetime + // + this.lcgbSelectDatetime.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.slbStartDate, + this.layoutControlItem2, + this.slbEndDate, + this.layoutControlItem4, + this.layoutControlItem3}); + this.lcgbSelectDatetime.Location = new System.Drawing.Point(0, 0); + this.lcgbSelectDatetime.Name = "lcgbSelectDatetime"; + this.lcgbSelectDatetime.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.lcgbSelectDatetime.Size = new System.Drawing.Size(848, 58); + this.lcgbSelectDatetime.Text = "Select Datetime"; + // + // slbStartDate + // + this.slbStartDate.AllowHotTrack = false; + this.slbStartDate.Location = new System.Drawing.Point(0, 0); + this.slbStartDate.MinSize = new System.Drawing.Size(95, 18); + this.slbStartDate.Name = "slbStartDate"; + this.slbStartDate.Size = new System.Drawing.Size(95, 29); + this.slbStartDate.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.slbStartDate.Text = " Start Datetime"; + this.slbStartDate.TextSize = new System.Drawing.Size(85, 14); + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.dtpStart; + this.layoutControlItem2.Location = new System.Drawing.Point(95, 0); + this.layoutControlItem2.MinSize = new System.Drawing.Size(24, 24); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(198, 29); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // slbEndDate + // + this.slbEndDate.AllowHotTrack = false; + this.slbEndDate.Location = new System.Drawing.Point(293, 0); + this.slbEndDate.MinSize = new System.Drawing.Size(95, 18); + this.slbEndDate.Name = "slbEndDate"; + this.slbEndDate.Size = new System.Drawing.Size(95, 29); + this.slbEndDate.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.slbEndDate.Text = " End Datetime"; + this.slbEndDate.TextSize = new System.Drawing.Size(85, 14); + // + // layoutControlItem4 + // + this.layoutControlItem4.Control = this.btnSearch; + this.layoutControlItem4.Location = new System.Drawing.Point(585, 0); + this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 29); + this.layoutControlItem4.MinSize = new System.Drawing.Size(24, 29); + this.layoutControlItem4.Name = "layoutControlItem4"; + this.layoutControlItem4.Size = new System.Drawing.Size(255, 29); + this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem4.TextVisible = false; + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.dtpEnd; + this.layoutControlItem3.Location = new System.Drawing.Point(388, 0); + this.layoutControlItem3.MinSize = new System.Drawing.Size(24, 24); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(197, 29); + this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextVisible = false; + // + // lcgbSearchResult + // + this.lcgbSearchResult.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem1}); + this.lcgbSearchResult.Location = new System.Drawing.Point(0, 58); + this.lcgbSearchResult.Name = "lcgbSearchResult"; + this.lcgbSearchResult.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.lcgbSearchResult.Size = new System.Drawing.Size(848, 575); + this.lcgbSearchResult.Text = "Search Result"; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.xtcSearchResult; + this.layoutControlItem1.CustomizationFormText = "layoutControlItem1"; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(840, 546); + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // ucHistroy + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.layoutControl1); + this.Name = "ucHistroy"; + this.Size = new System.Drawing.Size(850, 635); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.xtcSearchResult)).EndInit(); + this.xtcSearchResult.ResumeLayout(false); + this.pgGrid.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit(); + this.layoutControl3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.gridSearchResult)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcgbSelectDatetime)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.slbStartDate)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.slbEndDate)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcgbSearchResult)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraTab.XtraTabControl xtcSearchResult; + private DevExpress.XtraTab.XtraTabPage pgGrid; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraSplashScreen.SplashScreenManager DbWaitForm; + private System.Windows.Forms.Button btnSearch; + private System.Windows.Forms.DateTimePicker dtpEnd; + private System.Windows.Forms.DateTimePicker dtpStart; + private DevExpress.XtraLayout.LayoutControlGroup lcgbSelectDatetime; + private DevExpress.XtraLayout.SimpleLabelItem slbStartDate; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.SimpleLabelItem slbEndDate; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private DevExpress.XtraLayout.LayoutControlGroup lcgbSearchResult; + private DevExpress.XtraLayout.LayoutControl layoutControl3; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private System.Windows.Forms.DataGridView gridSearchResult; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraEditors.SimpleButton btnExportExcel; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + } +} diff --git a/LFP_Manager/Controls/ucHistroy.cs b/LFP_Manager/Controls/ucHistroy.cs new file mode 100644 index 0000000..e2edaba --- /dev/null +++ b/LFP_Manager/Controls/ucHistroy.cs @@ -0,0 +1,215 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Linq; +using System.Windows.Forms; +using System.IO; + +using DevExpress.XtraWaitForm; +using DevExpress.XtraSplashScreen; +using DevExpress.XtraCharts; + +using System.Data.SQLite; +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Utils; + +namespace LFP_Manager.Controls +{ + public partial class ucHistroy : DevExpress.XtraEditors.XtraUserControl + { + #region VARIABLES + + CommConfig Config; + + DataTable dtHistory; + + #endregion + + #region CONSTRUCTOR + + public ucHistroy() + { + InitializeComponent(); + + dtHistory = new DataTable(); + } + + public void SetCommCofig(CommConfig aConfig) + { + Config = aConfig; + } + + #endregion + + #region SQL QUARY EXCUTE + + private void quaryExcute(string quary) + { + string dbFilename = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + csDbConstData.DataBase.FileName; + + // Open database + string strConn = @"Data Source=" + dbFilename; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + DataTable aT = new DataTable(); + + DbWaitForm.ShowWaitForm(); + + csDbUtils.BeginTran(connection); + // Update data + using (SQLiteCommand command = connection.CreateCommand()) + { + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = quary; + + try + { + SQLiteDataReader reader = command.ExecuteReader(); + aT.Load(reader); + } + catch (Exception) + { + } + } + csDbUtils.CommitTran(connection); + dtHistory = aT; + //RealGridView.DataSource = dt; + + DbWaitForm.CloseWaitForm(); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + finally + { + connection.Close(); + } + } + } + + #endregion + + #region BUTTON EVENT + + private void btnSearch_Click(object sender, EventArgs e) + { + DateTime start = dtpStart.Value; + DateTime mid; + DateTime end = dtpEnd.Value; + TimeSpan span = end - start; + + int sDay = start.DayOfYear; + int eDay = end.DayOfYear; + + dtHistory.Clear(); + + int total_days = eDay - sDay; + + DataTable[] dDt = new DataTable[total_days + 1]; + + string quary = ""; + + try + { + if (total_days == 0) + { + quary = String.Format(" where create_date > '{0:yyyy-MM-dd HH:mm:ss}'", start); + quary += String.Format(" and create_date < '{0:yyyy-MM-dd HH:mm:ss}'", end); + dDt[0] = csDbUtils.BmsDataSelectToDataTable(Config, start, quary); + if (dDt[0] == null) + MessageBox.Show("No data", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information); + else + { + dtHistory = dDt[0]; + dtHistory.TableName = "THistory"; + gridSearchResult.DataSource = dtHistory; + //gridSearchResult.(); + } + } + else + { + DataTable bDt = new DataTable(); + for (int i = 0; i < (total_days + 1); i++) + { + //dDt[i] = new DataTable(); + if (i == 0) + { + quary = String.Format(" where create_date > '{0:yyyy-MM-dd HH:mm:ss}'", start); + dDt[i] = csDbUtils.BmsDataSelectToDataTable(Config, start, quary); + } + else if (i == total_days) + { + quary = String.Format(" where create_date < '{0:yyyy-MM-dd HH:mm:ss}'", end); + dDt[i] = csDbUtils.BmsDataSelectToDataTable(Config, end, quary); + } + else + { + quary = ""; + mid = start.AddDays(i); + dDt[i] = csDbUtils.BmsDataSelectToDataTable(Config, mid, quary); + } + if (dDt[i] != null) + bDt.Merge(dDt[i]); + } + if (bDt == null) + MessageBox.Show("No data", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information); + else + { + dtHistory = bDt; + dtHistory.TableName = String.Format("THistory_{0:yyMMdd_HHmmss}", DateTime.Now); + gridSearchResult.DataSource = dtHistory; + } + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void btnExportExcel_Click(object sender, EventArgs e) + { + SaveFileDialog sDialog = new SaveFileDialog(); + sDialog.Title = "Select save file"; + sDialog.DefaultExt = "xlsx"; + sDialog.Filter = "Excel files 2003 (*.xls)|*.xls|All files (*.*)|*.*"; + + if (sDialog.ShowDialog() == DialogResult.OK) + { + string filename = sDialog.FileName; + + try + { + csExcelExport.ExportToExcelExt(dtHistory, filename); + + MessageBox.Show("Complete Export Excel File", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + + #endregion + + #region COMPONENT EVENT + private void gridSearchResult_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) + { + if (e.Value is DateTime dateTime) + { + e.Value = csUtils.FormatDateTime(dateTime); + e.FormattingApplied = true; + } + } + #endregion + } +} diff --git a/LFP_Manager/Controls/ucHistroy.resx b/LFP_Manager/Controls/ucHistroy.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/LFP_Manager/Controls/ucHistroy.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LFP_Manager/Controls/ucMainStatus.Designer.cs b/LFP_Manager/Controls/ucMainStatus.Designer.cs new file mode 100644 index 0000000..d3ee152 --- /dev/null +++ b/LFP_Manager/Controls/ucMainStatus.Designer.cs @@ -0,0 +1,822 @@ +namespace LFP_Manager.Controls +{ + partial class ucMainStatus + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + DevExpress.XtraCharts.XYDiagram xyDiagram1 = new DevExpress.XtraCharts.XYDiagram(); + DevExpress.XtraCharts.Series series1 = new DevExpress.XtraCharts.Series(); + DevExpress.XtraCharts.LineSeriesView lineSeriesView1 = new DevExpress.XtraCharts.LineSeriesView(); + DevExpress.XtraCharts.Series series2 = new DevExpress.XtraCharts.Series(); + DevExpress.XtraCharts.LineSeriesView lineSeriesView2 = new DevExpress.XtraCharts.LineSeriesView(); + DevExpress.XtraCharts.ChartTitle chartTitle1 = new DevExpress.XtraCharts.ChartTitle(); + this.tmrDisplay = new System.Windows.Forms.Timer(this.components); + this.rtGraph = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl(); + this.btnChartClear = new DevExpress.XtraEditors.SimpleButton(); + this.chartVI = new DevExpress.XtraCharts.ChartControl(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.groupControl1 = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl(); + this.gaugeControl5 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.dgTotalSOH = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.digitalBackgroundLayerComponent5 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.gaugeControl4 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.dgTotalSOC = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.digitalBackgroundLayerComponent4 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.gaugeControl3 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.dgTotalTemp = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.digitalBackgroundLayerComponent3 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.gaugeControl2 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.dgTotalCurrent = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.digitalBackgroundLayerComponent2 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.gaugeControl1 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.dgTotalVoltage = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.digitalBackgroundLayerComponent1 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.panelControl11 = new DevExpress.XtraEditors.PanelControl(); + this.lbStatus = new DevExpress.XtraEditors.LabelControl(); + this.panelControl2 = new DevExpress.XtraEditors.PanelControl(); + this.lbAlarm = new DevExpress.XtraEditors.LabelControl(); + this.lcGroupSystemValue = new DevExpress.XtraLayout.LayoutControlGroup(); + this.lcItemTotalVoltage = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcItemTotalCurrent = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcItemTemp = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcItemSOC = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcItemSOH = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.lcitemStatus = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcitemAlarm = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcGroupRoot = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + this.gbModuleMain = new DevExpress.XtraEditors.GroupControl(); + this.lcModuleMain = new DevExpress.XtraLayout.LayoutControl(); + this.lcgbModuleMain = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcMain = new DevExpress.XtraLayout.LayoutControl(); + this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem(); + ((System.ComponentModel.ISupportInitialize)(this.rtGraph)).BeginInit(); + this.rtGraph.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit(); + this.layoutControl2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.chartVI)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(xyDiagram1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(series1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(lineSeriesView1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(series2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(lineSeriesView2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.groupControl1)).BeginInit(); + this.groupControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit(); + this.layoutControl3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgTotalSOH)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgTotalSOC)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgTotalTemp)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgTotalCurrent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgTotalVoltage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.panelControl11)).BeginInit(); + this.panelControl11.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.panelControl2)).BeginInit(); + this.panelControl2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.lcGroupSystemValue)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemTotalVoltage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemTotalCurrent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemTemp)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemSOC)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemSOH)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemStatus)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemAlarm)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcGroupRoot)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbModuleMain)).BeginInit(); + this.gbModuleMain.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.lcModuleMain)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcgbModuleMain)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcMain)).BeginInit(); + this.lcMain.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit(); + this.SuspendLayout(); + // + // tmrDisplay + // + this.tmrDisplay.Interval = 500; + this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick); + // + // rtGraph + // + this.rtGraph.Controls.Add(this.layoutControl2); + this.rtGraph.Location = new System.Drawing.Point(206, 413); + this.rtGraph.Name = "rtGraph"; + this.rtGraph.Size = new System.Drawing.Size(1093, 158); + this.rtGraph.TabIndex = 5; + this.rtGraph.Text = "Real Time Graph"; + // + // layoutControl2 + // + this.layoutControl2.AllowCustomization = false; + this.layoutControl2.Controls.Add(this.btnChartClear); + this.layoutControl2.Controls.Add(this.chartVI); + this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl2.HiddenItems.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem3, + this.layoutControlItem5}); + this.layoutControl2.Location = new System.Drawing.Point(2, 23); + this.layoutControl2.Name = "layoutControl2"; + this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1232, 92, 650, 400); + this.layoutControl2.Root = this.layoutControlGroup2; + this.layoutControl2.Size = new System.Drawing.Size(1089, 133); + this.layoutControl2.TabIndex = 0; + this.layoutControl2.Text = "layoutControl2"; + // + // btnChartClear + // + this.btnChartClear.Location = new System.Drawing.Point(3, 3); + this.btnChartClear.Name = "btnChartClear"; + this.btnChartClear.Size = new System.Drawing.Size(1083, 127); + this.btnChartClear.StyleController = this.layoutControl2; + this.btnChartClear.TabIndex = 5; + this.btnChartClear.Text = "Clear"; + // + // chartVI + // + xyDiagram1.AxisX.NumericScaleOptions.AutoGrid = false; + xyDiagram1.AxisX.VisibleInPanesSerializable = "-1"; + xyDiagram1.AxisX.VisualRange.Auto = false; + xyDiagram1.AxisX.VisualRange.AutoSideMargins = false; + xyDiagram1.AxisX.VisualRange.EndSideMargin = 0D; + xyDiagram1.AxisX.VisualRange.MaxValueSerializable = "9"; + xyDiagram1.AxisX.VisualRange.MinValueSerializable = "0"; + xyDiagram1.AxisX.VisualRange.StartSideMargin = 0D; + xyDiagram1.AxisY.VisibleInPanesSerializable = "-1"; + xyDiagram1.DefaultPane.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(242)))), ((int)(((byte)(242)))), ((int)(((byte)(242))))); + this.chartVI.Diagram = xyDiagram1; + this.chartVI.Legend.Name = "Default Legend"; + this.chartVI.Location = new System.Drawing.Point(3, 3); + this.chartVI.Name = "chartVI"; + series1.Name = "Series 1"; + series1.View = lineSeriesView1; + series2.Name = "Series 2"; + series2.View = lineSeriesView2; + this.chartVI.SeriesSerializable = new DevExpress.XtraCharts.Series[] { + series1, + series2}; + this.chartVI.Size = new System.Drawing.Size(1083, 101); + this.chartVI.TabIndex = 4; + this.chartVI.Titles.AddRange(new DevExpress.XtraCharts.ChartTitle[] { + chartTitle1}); + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.chartVI; + this.layoutControlItem3.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(1087, 105); + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextVisible = false; + // + // layoutControlItem5 + // + this.layoutControlItem5.Control = this.btnChartClear; + this.layoutControlItem5.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem5.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem5.Name = "layoutControlItem5"; + this.layoutControlItem5.Size = new System.Drawing.Size(1087, 131); + this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem5.TextVisible = false; + // + // layoutControlGroup2 + // + this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2"; + this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup2.GroupBordersVisible = false; + this.layoutControlGroup2.Name = "Root"; + this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup2.Size = new System.Drawing.Size(1089, 133); + this.layoutControlGroup2.TextVisible = false; + // + // groupControl1 + // + this.groupControl1.Controls.Add(this.layoutControl3); + this.groupControl1.Location = new System.Drawing.Point(3, 3); + this.groupControl1.Name = "groupControl1"; + this.groupControl1.Size = new System.Drawing.Size(199, 564); + this.groupControl1.TabIndex = 5; + this.groupControl1.Text = "System Value"; + // + // layoutControl3 + // + this.layoutControl3.AllowCustomization = false; + this.layoutControl3.Controls.Add(this.gaugeControl5); + this.layoutControl3.Controls.Add(this.gaugeControl4); + this.layoutControl3.Controls.Add(this.gaugeControl3); + this.layoutControl3.Controls.Add(this.gaugeControl2); + this.layoutControl3.Controls.Add(this.gaugeControl1); + this.layoutControl3.Controls.Add(this.panelControl11); + this.layoutControl3.Controls.Add(this.panelControl2); + this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl3.Location = new System.Drawing.Point(2, 23); + this.layoutControl3.Name = "layoutControl3"; + this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(498, 165, 250, 350); + this.layoutControl3.Root = this.lcGroupSystemValue; + this.layoutControl3.Size = new System.Drawing.Size(195, 539); + this.layoutControl3.TabIndex = 0; + this.layoutControl3.Text = "layoutControl3"; + // + // gaugeControl5 + // + this.gaugeControl5.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.dgTotalSOH}); + this.gaugeControl5.Location = new System.Drawing.Point(3, 368); + this.gaugeControl5.Name = "gaugeControl5"; + this.gaugeControl5.Size = new System.Drawing.Size(189, 66); + this.gaugeControl5.TabIndex = 8; + // + // dgTotalSOH + // + this.dgTotalSOH.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.dgTotalSOH.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.dgTotalSOH.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent5}); + this.dgTotalSOH.Bounds = new System.Drawing.Rectangle(6, 6, 177, 54); + this.dgTotalSOH.DigitCount = 5; + this.dgTotalSOH.Name = "dgTotalSOH"; + this.dgTotalSOH.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.dgTotalSOH.Text = "00,000"; + // + // digitalBackgroundLayerComponent5 + // + this.digitalBackgroundLayerComponent5.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F); + this.digitalBackgroundLayerComponent5.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent5.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent5.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent5.ZOrder = 1000; + // + // gaugeControl4 + // + this.gaugeControl4.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.dgTotalSOC}); + this.gaugeControl4.Location = new System.Drawing.Point(3, 281); + this.gaugeControl4.Name = "gaugeControl4"; + this.gaugeControl4.Size = new System.Drawing.Size(189, 66); + this.gaugeControl4.TabIndex = 7; + // + // dgTotalSOC + // + this.dgTotalSOC.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.dgTotalSOC.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.dgTotalSOC.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent4}); + this.dgTotalSOC.Bounds = new System.Drawing.Rectangle(6, 6, 177, 54); + this.dgTotalSOC.DigitCount = 5; + this.dgTotalSOC.Name = "dgTotalSOC"; + this.dgTotalSOC.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.dgTotalSOC.Text = "00,000"; + // + // digitalBackgroundLayerComponent4 + // + this.digitalBackgroundLayerComponent4.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F); + this.digitalBackgroundLayerComponent4.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent4.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent4.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent4.ZOrder = 1000; + // + // gaugeControl3 + // + this.gaugeControl3.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.dgTotalTemp}); + this.gaugeControl3.Location = new System.Drawing.Point(3, 194); + this.gaugeControl3.Name = "gaugeControl3"; + this.gaugeControl3.Size = new System.Drawing.Size(189, 66); + this.gaugeControl3.TabIndex = 6; + // + // dgTotalTemp + // + this.dgTotalTemp.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.dgTotalTemp.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.dgTotalTemp.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent3}); + this.dgTotalTemp.Bounds = new System.Drawing.Rectangle(6, 6, 177, 54); + this.dgTotalTemp.DigitCount = 5; + this.dgTotalTemp.Name = "dgTotalTemp"; + this.dgTotalTemp.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.dgTotalTemp.Text = "00,000"; + // + // digitalBackgroundLayerComponent3 + // + this.digitalBackgroundLayerComponent3.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F); + this.digitalBackgroundLayerComponent3.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent3.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent3.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent3.ZOrder = 1000; + // + // gaugeControl2 + // + this.gaugeControl2.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.dgTotalCurrent}); + this.gaugeControl2.Location = new System.Drawing.Point(3, 107); + this.gaugeControl2.Name = "gaugeControl2"; + this.gaugeControl2.Size = new System.Drawing.Size(189, 66); + this.gaugeControl2.TabIndex = 5; + // + // dgTotalCurrent + // + this.dgTotalCurrent.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.dgTotalCurrent.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.dgTotalCurrent.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent2}); + this.dgTotalCurrent.Bounds = new System.Drawing.Rectangle(6, 6, 177, 54); + this.dgTotalCurrent.DigitCount = 5; + this.dgTotalCurrent.Name = "dgTotalCurrent"; + this.dgTotalCurrent.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.dgTotalCurrent.Text = "00,000"; + // + // digitalBackgroundLayerComponent2 + // + this.digitalBackgroundLayerComponent2.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F); + this.digitalBackgroundLayerComponent2.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent2.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent2.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent2.ZOrder = 1000; + // + // gaugeControl1 + // + this.gaugeControl1.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.dgTotalVoltage}); + this.gaugeControl1.Location = new System.Drawing.Point(3, 20); + this.gaugeControl1.Name = "gaugeControl1"; + this.gaugeControl1.Size = new System.Drawing.Size(189, 66); + this.gaugeControl1.TabIndex = 4; + // + // dgTotalVoltage + // + this.dgTotalVoltage.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.dgTotalVoltage.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.dgTotalVoltage.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent1}); + this.dgTotalVoltage.Bounds = new System.Drawing.Rectangle(6, 6, 177, 54); + this.dgTotalVoltage.DigitCount = 5; + this.dgTotalVoltage.Name = "dgTotalVoltage"; + this.dgTotalVoltage.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.dgTotalVoltage.Text = "00,000"; + // + // digitalBackgroundLayerComponent1 + // + this.digitalBackgroundLayerComponent1.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F); + this.digitalBackgroundLayerComponent1.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent1.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent1.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent1.ZOrder = 1000; + // + // panelControl11 + // + this.panelControl11.Controls.Add(this.lbStatus); + this.panelControl11.Location = new System.Drawing.Point(49, 464); + this.panelControl11.Name = "panelControl11"; + this.panelControl11.Size = new System.Drawing.Size(138, 31); + this.panelControl11.TabIndex = 4; + // + // lbStatus + // + this.lbStatus.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbStatus.Appearance.Options.UseFont = true; + this.lbStatus.Appearance.Options.UseTextOptions = true; + this.lbStatus.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lbStatus.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None; + this.lbStatus.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbStatus.Location = new System.Drawing.Point(2, 2); + this.lbStatus.Name = "lbStatus"; + this.lbStatus.Size = new System.Drawing.Size(134, 27); + this.lbStatus.TabIndex = 0; + this.lbStatus.Text = "Status"; + // + // panelControl2 + // + this.panelControl2.Controls.Add(this.lbAlarm); + this.panelControl2.Location = new System.Drawing.Point(49, 499); + this.panelControl2.Name = "panelControl2"; + this.panelControl2.Size = new System.Drawing.Size(138, 32); + this.panelControl2.TabIndex = 5; + // + // lbAlarm + // + this.lbAlarm.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbAlarm.Appearance.Options.UseFont = true; + this.lbAlarm.Appearance.Options.UseTextOptions = true; + this.lbAlarm.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lbAlarm.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None; + this.lbAlarm.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbAlarm.Location = new System.Drawing.Point(2, 2); + this.lbAlarm.Name = "lbAlarm"; + this.lbAlarm.Size = new System.Drawing.Size(134, 28); + this.lbAlarm.TabIndex = 0; + this.lbAlarm.Text = "Alarm"; + // + // lcGroupSystemValue + // + this.lcGroupSystemValue.CustomizationFormText = "layoutControlGroup3"; + this.lcGroupSystemValue.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.lcGroupSystemValue.GroupBordersVisible = false; + this.lcGroupSystemValue.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.lcItemTotalVoltage, + this.lcItemTotalCurrent, + this.lcItemTemp, + this.lcItemSOC, + this.lcItemSOH, + this.layoutControlGroup1}); + this.lcGroupSystemValue.Name = "lcGroupSystemValue"; + this.lcGroupSystemValue.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.lcGroupSystemValue.Size = new System.Drawing.Size(195, 539); + this.lcGroupSystemValue.TextVisible = false; + // + // lcItemTotalVoltage + // + this.lcItemTotalVoltage.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lcItemTotalVoltage.AppearanceItemCaption.Options.UseFont = true; + this.lcItemTotalVoltage.Control = this.gaugeControl1; + this.lcItemTotalVoltage.CustomizationFormText = "layoutControlItem4"; + this.lcItemTotalVoltage.Location = new System.Drawing.Point(0, 0); + this.lcItemTotalVoltage.MaxSize = new System.Drawing.Size(0, 87); + this.lcItemTotalVoltage.MinSize = new System.Drawing.Size(109, 87); + this.lcItemTotalVoltage.Name = "lcItemTotalVoltage"; + this.lcItemTotalVoltage.Size = new System.Drawing.Size(193, 87); + this.lcItemTotalVoltage.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcItemTotalVoltage.Text = " Voltage"; + this.lcItemTotalVoltage.TextLocation = DevExpress.Utils.Locations.Top; + this.lcItemTotalVoltage.TextSize = new System.Drawing.Size(125, 14); + // + // lcItemTotalCurrent + // + this.lcItemTotalCurrent.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lcItemTotalCurrent.AppearanceItemCaption.Options.UseFont = true; + this.lcItemTotalCurrent.Control = this.gaugeControl2; + this.lcItemTotalCurrent.CustomizationFormText = " Current"; + this.lcItemTotalCurrent.Location = new System.Drawing.Point(0, 87); + this.lcItemTotalCurrent.MaxSize = new System.Drawing.Size(0, 87); + this.lcItemTotalCurrent.MinSize = new System.Drawing.Size(109, 87); + this.lcItemTotalCurrent.Name = "lcItemTotalCurrent"; + this.lcItemTotalCurrent.Size = new System.Drawing.Size(193, 87); + this.lcItemTotalCurrent.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcItemTotalCurrent.Text = " Current"; + this.lcItemTotalCurrent.TextLocation = DevExpress.Utils.Locations.Top; + this.lcItemTotalCurrent.TextSize = new System.Drawing.Size(125, 14); + // + // lcItemTemp + // + this.lcItemTemp.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lcItemTemp.AppearanceItemCaption.Options.UseFont = true; + this.lcItemTemp.Control = this.gaugeControl3; + this.lcItemTemp.CustomizationFormText = " Temperature"; + this.lcItemTemp.Location = new System.Drawing.Point(0, 174); + this.lcItemTemp.MaxSize = new System.Drawing.Size(0, 87); + this.lcItemTemp.MinSize = new System.Drawing.Size(109, 87); + this.lcItemTemp.Name = "lcItemTemp"; + this.lcItemTemp.Size = new System.Drawing.Size(193, 87); + this.lcItemTemp.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcItemTemp.Text = " Temperature (Max.)"; + this.lcItemTemp.TextLocation = DevExpress.Utils.Locations.Top; + this.lcItemTemp.TextSize = new System.Drawing.Size(125, 14); + // + // lcItemSOC + // + this.lcItemSOC.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lcItemSOC.AppearanceItemCaption.Options.UseFont = true; + this.lcItemSOC.Control = this.gaugeControl4; + this.lcItemSOC.CustomizationFormText = " SOC"; + this.lcItemSOC.Location = new System.Drawing.Point(0, 261); + this.lcItemSOC.MaxSize = new System.Drawing.Size(0, 87); + this.lcItemSOC.MinSize = new System.Drawing.Size(109, 87); + this.lcItemSOC.Name = "lcItemSOC"; + this.lcItemSOC.Size = new System.Drawing.Size(193, 87); + this.lcItemSOC.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcItemSOC.Text = " SOC"; + this.lcItemSOC.TextLocation = DevExpress.Utils.Locations.Top; + this.lcItemSOC.TextSize = new System.Drawing.Size(125, 14); + // + // lcItemSOH + // + this.lcItemSOH.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold); + this.lcItemSOH.AppearanceItemCaption.Options.UseFont = true; + this.lcItemSOH.Control = this.gaugeControl5; + this.lcItemSOH.Location = new System.Drawing.Point(0, 348); + this.lcItemSOH.MaxSize = new System.Drawing.Size(0, 87); + this.lcItemSOH.MinSize = new System.Drawing.Size(109, 87); + this.lcItemSOH.Name = "lcItemSOH"; + this.lcItemSOH.Size = new System.Drawing.Size(193, 87); + this.lcItemSOH.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcItemSOH.Text = " SOH"; + this.lcItemSOH.TextLocation = DevExpress.Utils.Locations.Top; + this.lcItemSOH.TextSize = new System.Drawing.Size(125, 14); + // + // layoutControlGroup1 + // + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.lcitemStatus, + this.lcitemAlarm}); + this.layoutControlGroup1.Location = new System.Drawing.Point(0, 435); + this.layoutControlGroup1.Name = "layoutControlGroup1"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2); + this.layoutControlGroup1.Size = new System.Drawing.Size(193, 102); + this.layoutControlGroup1.Text = "Operating Status"; + // + // lcitemStatus + // + this.lcitemStatus.Control = this.panelControl11; + this.lcitemStatus.ControlAlignment = System.Drawing.ContentAlignment.TopLeft; + this.lcitemStatus.CustomizationFormText = "Status"; + this.lcitemStatus.Location = new System.Drawing.Point(0, 0); + this.lcitemStatus.MinSize = new System.Drawing.Size(64, 26); + this.lcitemStatus.Name = "lcitemStatus"; + this.lcitemStatus.Size = new System.Drawing.Size(183, 35); + this.lcitemStatus.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemStatus.Text = "Status"; + this.lcitemStatus.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.lcitemStatus.TextSize = new System.Drawing.Size(40, 14); + this.lcitemStatus.TextToControlDistance = 1; + // + // lcitemAlarm + // + this.lcitemAlarm.Control = this.panelControl2; + this.lcitemAlarm.ControlAlignment = System.Drawing.ContentAlignment.TopLeft; + this.lcitemAlarm.CustomizationFormText = "Alarm"; + this.lcitemAlarm.Location = new System.Drawing.Point(0, 35); + this.lcitemAlarm.MinSize = new System.Drawing.Size(64, 26); + this.lcitemAlarm.Name = "lcitemAlarm"; + this.lcitemAlarm.Size = new System.Drawing.Size(183, 36); + this.lcitemAlarm.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemAlarm.Text = "Alarm"; + this.lcitemAlarm.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.lcitemAlarm.TextSize = new System.Drawing.Size(40, 20); + this.lcitemAlarm.TextToControlDistance = 1; + // + // lcGroupRoot + // + this.lcGroupRoot.CustomizationFormText = "layoutControlGroup1"; + this.lcGroupRoot.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.lcGroupRoot.GroupBordersVisible = false; + this.lcGroupRoot.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem1, + this.layoutControlItem6}); + this.lcGroupRoot.Name = "Root"; + this.lcGroupRoot.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.lcGroupRoot.Size = new System.Drawing.Size(1302, 570); + this.lcGroupRoot.TextVisible = false; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.groupControl1; + this.layoutControlItem1.CustomizationFormText = "layoutControlItem1"; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.MaxSize = new System.Drawing.Size(203, 0); + this.layoutControlItem1.MinSize = new System.Drawing.Size(203, 24); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(203, 568); + this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.gbModuleMain; + this.layoutControlItem6.Location = new System.Drawing.Point(203, 0); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(1097, 568); + this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem6.TextVisible = false; + // + // gbModuleMain + // + this.gbModuleMain.Controls.Add(this.lcModuleMain); + this.gbModuleMain.Location = new System.Drawing.Point(206, 3); + this.gbModuleMain.Name = "gbModuleMain"; + this.gbModuleMain.Size = new System.Drawing.Size(1093, 564); + this.gbModuleMain.TabIndex = 6; + this.gbModuleMain.Text = "Module"; + // + // lcModuleMain + // + this.lcModuleMain.AllowCustomization = false; + this.lcModuleMain.Dock = System.Windows.Forms.DockStyle.Fill; + this.lcModuleMain.Location = new System.Drawing.Point(2, 23); + this.lcModuleMain.Name = "lcModuleMain"; + this.lcModuleMain.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1270, 115, 650, 400); + this.lcModuleMain.Root = this.lcgbModuleMain; + this.lcModuleMain.Size = new System.Drawing.Size(1089, 539); + this.lcModuleMain.TabIndex = 0; + this.lcModuleMain.Text = "layoutControl5"; + // + // lcgbModuleMain + // + this.lcgbModuleMain.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.lcgbModuleMain.GroupBordersVisible = false; + this.lcgbModuleMain.Name = "Root"; + this.lcgbModuleMain.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.lcgbModuleMain.Size = new System.Drawing.Size(1089, 539); + this.lcgbModuleMain.TextVisible = false; + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.rtGraph; + this.layoutControlItem2.CustomizationFormText = "layoutControlItem2"; + this.layoutControlItem2.Location = new System.Drawing.Point(203, 410); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(1097, 162); + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // lcMain + // + this.lcMain.AllowCustomization = false; + this.lcMain.Controls.Add(this.gbModuleMain); + this.lcMain.Controls.Add(this.groupControl1); + this.lcMain.Controls.Add(this.rtGraph); + this.lcMain.Dock = System.Windows.Forms.DockStyle.Fill; + this.lcMain.HiddenItems.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem2}); + this.lcMain.Location = new System.Drawing.Point(0, 0); + this.lcMain.Name = "lcMain"; + this.lcMain.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(955, 282, 650, 400); + this.lcMain.Root = this.lcGroupRoot; + this.lcMain.Size = new System.Drawing.Size(1302, 570); + this.lcMain.TabIndex = 0; + this.lcMain.Text = "layoutControl1"; + // + // layoutControlGroup4 + // + this.layoutControlGroup4.CustomizationFormText = "layoutControlGroup3"; + this.layoutControlGroup4.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup4.GroupBordersVisible = false; + this.layoutControlGroup4.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup4.Name = "Root"; + this.layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup4.Size = new System.Drawing.Size(185, 63); + this.layoutControlGroup4.TextVisible = false; + // + // layoutControlItem7 + // + this.layoutControlItem7.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold); + this.layoutControlItem7.AppearanceItemCaption.Options.UseFont = true; + this.layoutControlItem7.Control = this.gaugeControl5; + this.layoutControlItem7.Location = new System.Drawing.Point(0, 344); + this.layoutControlItem7.MinSize = new System.Drawing.Size(109, 41); + this.layoutControlItem7.Name = "layoutControlItem7"; + this.layoutControlItem7.Size = new System.Drawing.Size(193, 86); + this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem7.Text = " SOH"; + this.layoutControlItem7.TextLocation = DevExpress.Utils.Locations.Top; + this.layoutControlItem7.TextSize = new System.Drawing.Size(82, 14); + // + // ucMainStatus + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.lcMain); + this.Name = "ucMainStatus"; + this.Size = new System.Drawing.Size(1302, 570); + ((System.ComponentModel.ISupportInitialize)(this.rtGraph)).EndInit(); + this.rtGraph.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit(); + this.layoutControl2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(xyDiagram1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(lineSeriesView1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(series1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(lineSeriesView2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(series2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.chartVI)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.groupControl1)).EndInit(); + this.groupControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit(); + this.layoutControl3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dgTotalSOH)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgTotalSOC)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgTotalTemp)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgTotalCurrent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgTotalVoltage)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.panelControl11)).EndInit(); + this.panelControl11.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.panelControl2)).EndInit(); + this.panelControl2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.lcGroupSystemValue)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemTotalVoltage)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemTotalCurrent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemTemp)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemSOC)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemSOH)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemStatus)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemAlarm)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcGroupRoot)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbModuleMain)).EndInit(); + this.gbModuleMain.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.lcModuleMain)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcgbModuleMain)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcMain)).EndInit(); + this.lcMain.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.Timer tmrDisplay; + private DevExpress.XtraEditors.GroupControl rtGraph; + private DevExpress.XtraLayout.LayoutControl layoutControl2; + private DevExpress.XtraEditors.SimpleButton btnChartClear; + private DevExpress.XtraCharts.ChartControl chartVI; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraEditors.GroupControl groupControl1; + private DevExpress.XtraLayout.LayoutControl layoutControl3; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl4; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgTotalSOC; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent4; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl3; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgTotalTemp; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent3; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl2; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgTotalCurrent; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent2; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl1; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgTotalVoltage; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent1; + private DevExpress.XtraLayout.LayoutControlGroup lcGroupSystemValue; + private DevExpress.XtraLayout.LayoutControlItem lcItemTotalVoltage; + private DevExpress.XtraLayout.LayoutControlItem lcItemTotalCurrent; + private DevExpress.XtraLayout.LayoutControlItem lcItemTemp; + private DevExpress.XtraLayout.LayoutControlItem lcItemSOC; + private DevExpress.XtraLayout.LayoutControlGroup lcGroupRoot; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private DevExpress.XtraEditors.GroupControl gbModuleMain; + private DevExpress.XtraLayout.LayoutControl lcMain; + private DevExpress.XtraLayout.LayoutControl lcModuleMain; + private DevExpress.XtraLayout.LayoutControlGroup lcgbModuleMain; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl5; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgTotalSOH; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent5; + private DevExpress.XtraLayout.LayoutControlItem lcItemSOH; + private DevExpress.XtraEditors.PanelControl panelControl11; + private DevExpress.XtraEditors.LabelControl lbStatus; + private DevExpress.XtraLayout.LayoutControlItem lcitemStatus; + private DevExpress.XtraEditors.PanelControl panelControl2; + private DevExpress.XtraEditors.LabelControl lbAlarm; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraLayout.LayoutControlItem lcitemAlarm; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7; + } +} diff --git a/LFP_Manager/Controls/ucMainStatus.cs b/LFP_Manager/Controls/ucMainStatus.cs new file mode 100644 index 0000000..a19ec94 --- /dev/null +++ b/LFP_Manager/Controls/ucMainStatus.cs @@ -0,0 +1,324 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Threading; +using System.Windows.Forms; + +using DevExpress.XtraCharts; +using LFP_Manager.DataStructure; + +namespace LFP_Manager.Controls +{ + public delegate void CommandEvent(int sId, int cmd, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib); + + public partial class ucMainStatus : DevExpress.XtraEditors.XtraUserControl + { + #region VARIABLES + + private CommConfig Config; + private DeviceSystemTotalData SystemTotalData; + private DeviceSystemData[] SystemData; + + private ucModuleMainHeader ModuleMainHeader; + private ucModuleMainB[] ModuleMain; + private DevExpress.XtraLayout.LayoutControlItem[] lcitemModuleMain; + private DevExpress.XtraLayout.EmptySpaceItem[] emptySpaceItem; + + private int mQty; + + private double TotalVoltage; + private double TotalCurrent; + private double TotalTemperature; + private double TotalSoc; + private double TotalSoh; + + private bool active = false; + + public event CommandEvent OnCommand = null; + + #endregion + + #region CONSTRUCTORS + + public ucMainStatus() + { + InitializeComponent(); + + mQty = csConstData.SystemInfo.MAX_MODULE_SIZE; + } + + #endregion + + public void UpdateMainConfig(ref CommConfig aConfig, ref DeviceSystemData[] mSystemData) + { + Config = aConfig; + SystemData = mSystemData; + + mQty = Config.ModuleQty; + + LoadModuleMain(mQty); + + lcgbModuleMain.Invalidate(); + } + + private void LoadModuleMain(int mQty) + { + lcModuleMain.Controls.Clear(); + lcgbModuleMain.Items.Clear(); + + ModuleMainHeader = new ucModuleMainHeader(); + ModuleMain = new ucModuleMainB[mQty]; + lcitemModuleMain = new DevExpress.XtraLayout.LayoutControlItem[mQty + 1]; + + int empsize = csConstData.SystemInfo.MAX_MODULE_SIZE - mQty; + + if (empsize > 0) + { + emptySpaceItem = new DevExpress.XtraLayout.EmptySpaceItem[empsize]; + } + + int tWidth = lcgbModuleMain.Size.Width; + int tHeight = lcgbModuleMain.Size.Height; + + lcitemModuleMain[0] = new DevExpress.XtraLayout.LayoutControlItem + { + Control = ModuleMainHeader, + Name = String.Format("lcitemModuleMainHeader"), + Size = new Size(tWidth - 4, 30), + Location = new Point(2, 2), + TextVisible = false, + Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0) + }; + + int emp = 0; + for (int i = 0; i < csConstData.SystemInfo.MAX_MODULE_SIZE; i++) + { + if (i < mQty) + { + ModuleMain[i] = new ucModuleMainB(Config, i + 1, ref SystemData[i]); + ModuleMain[i].OnCommand += SetCmdEvent; + + lcitemModuleMain[i + 1] = new DevExpress.XtraLayout.LayoutControlItem + { + Control = ModuleMain[i], + Name = String.Format("lcitemModuleMain_{0}", i + 1), + Size = new Size(tWidth - 4, 60), + Location = new Point(2, 2 + 30 + (i * 60)), + TextVisible = false, + Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0) + }; + } + else + { + emptySpaceItem[emp] = new DevExpress.XtraLayout.EmptySpaceItem + { + Size = new Size(tWidth - 4, 60), + Location = new Point(2, 2 + 30 + (i * 60)) + }; + emp++; + } + } + + lcModuleMain.Controls.Add(ModuleMainHeader); + for (int i = 0; i < csConstData.SystemInfo.MAX_MODULE_SIZE; i++) + { + if (i < mQty) + lcModuleMain.Controls.Add(ModuleMain[i]); + } + + DevExpress.XtraLayout.BaseLayoutItem[] abase = new DevExpress.XtraLayout.BaseLayoutItem[csConstData.SystemInfo.MAX_MODULE_SIZE + 1]; + + emp = 0; + for (int i = 0; i < csConstData.SystemInfo.MAX_MODULE_SIZE + 1; i++) + { + if (i < (mQty + 1)) + abase[i] = lcitemModuleMain[i]; + else + abase[i] = emptySpaceItem[emp++]; + } + + lcgbModuleMain.Items.AddRange(abase); + + lcgbModuleMain.Invalidate(); + } + + public void Start(ref CommConfig aConfig, ref DeviceSystemTotalData aSystemTotalData, ref DeviceSystemData[] aSystemData) + { + Config = aConfig; + SystemTotalData = aSystemTotalData; + SystemData = aSystemData; + + switch (Config.CommType) + { + case csConstData.CommType.COMM_UART_MULTI: + mQty = Config.ModuleQty; + break; + default: + mQty = Config.ModuleQty; + break; + } + active = true; + tmrDisplay.Enabled = true; + } + + public void Stop() + { + active = false; + tmrDisplay.Enabled = false; + } + + public void UpdateData(ref DeviceSystemTotalData aSystemTotalData, ref DeviceSystemData[] aSystemData) + { + if (active) + { + SystemTotalData = aSystemTotalData; + SystemData = aSystemData; + + //if (this.InvokeRequired) + //{ + // this.Invoke(new MethodInvoker(delegate () + // { + // //mQty = SystemTotalData.IdentData.ModuleQuantity; + // LoadModuleMain(mQty); + + // OnCommand?.Invoke(0, 1, mQty, 1, ref Param, ref Calib); + // })); + //} + //else + //{ + // //mQty = SystemTotalData.IdentData.ModuleQuantity; + // LoadModuleMain(mQty); + + // OnCommand?.Invoke(0, 1, mQty, 1, ref Param, ref Calib); + //} + + TotalVoltage = (double)SystemTotalData.ValueData.TotalVoltage / 10; + TotalCurrent = (double)SystemTotalData.ValueData.TotalCurrent / 10; + TotalSoc = (double)SystemTotalData.ValueData.TotalSOC / 10; + TotalSoh = (double)SystemTotalData.ValueData.TotalSOH / 10; + TotalTemperature = (double)SystemTotalData.ValueData.TotalTemp / 10; + + for (int i = 0; i < ModuleMain.Length; i++) + { + ModuleMain[i].UpdateData(ref SystemData[i]); + } + } + } + #region ON EVENT FUNCTION + + private void SetCmdEvent(int sId, int cmd, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib) + { + OnCommand?.Invoke(sId, cmd, index, flag, ref aParam, ref aCalib); + } + + #endregion + + #region BUTTON EVENT + + #endregion + + #region TIMER EVENT + private void tmrDisplay_Tick(object sender, EventArgs e) + { + DisplayTotalValue(); + DisplayStatusAndAlarm(); + } + + #endregion + + #region DISPLAY FUNCTION + private void DisplayTotalValue() + { + if (active) + { + rtGraph.Text = String.Format("Real Time Graph - {0} - {1} Modules" + , String.Format("V{0}", SystemTotalData.IdentData.FwVerStr) + , Config.ModuleQty); + + dgTotalVoltage.Text = String.Format("{0:0.0}", TotalVoltage); + dgTotalCurrent.Text = String.Format("{0:0.0}", TotalCurrent); + dgTotalTemp.Text = String.Format("{0:0.0}", TotalTemperature); + dgTotalSOC.Text = String.Format("{0:0.0}", TotalSoc); + dgTotalSOH.Text = String.Format("{0:0.0}", TotalSoh); + + chartVI.Invalidate(); + } + } + + private void DisplayStatusAndAlarm() + { + if (SystemTotalData.CommFail == false) + { + // Operating Status + if (SystemTotalData.StatusData.status == 0) + { + lbStatus.Text = "STANDBY"; + lbStatus.ForeColor = System.Drawing.Color.Black; + } + else if (SystemTotalData.StatusData.status == 1) + { + lbStatus.Text = "CHARGING"; + lbStatus.ForeColor = System.Drawing.Color.Blue; + } + else if (SystemTotalData.StatusData.status == 2) + { + lbStatus.Text = "DISCHARGING"; + lbStatus.ForeColor = System.Drawing.Color.Magenta; + } + else if (SystemTotalData.StatusData.status == 3) + { + lbStatus.Text = "FLOATING"; + lbStatus.ForeColor = System.Drawing.Color.Black; + } + else + { + lbStatus.Text = "UNKNOWN"; + lbStatus.ForeColor = System.Drawing.Color.Black; + } + // Alarm Display + switch (SystemTotalData.StatusData.batteryStatus) + { + case 0: // NORMAL + lbAlarm.Text = "NORMAL"; + lbAlarm.ForeColor = System.Drawing.Color.Green; + break; + case 1: // WARNING + lbAlarm.Text = "NORMAL"; + lbAlarm.ForeColor = System.Drawing.Color.Green; + break; + case 2: // FAULT + lbAlarm.Text = "NORMAL"; + lbAlarm.ForeColor = System.Drawing.Color.Green; + break; + case 3: // WARMING UP + lbAlarm.Text = "WARMING UP"; + lbAlarm.ForeColor = System.Drawing.Color.Green; + break; + case 4: // FAULT (Anti-Theft Comm.) + lbAlarm.Text = "FAULT (Anti-Theft)"; + lbAlarm.ForeColor = System.Drawing.Color.Green; + break; + case 5: // FAULT (Anti-Theft Gyro-Scope) + lbAlarm.Text = "FAULT (Anti-Theft)"; + lbAlarm.ForeColor = System.Drawing.Color.Green; + break; + default: + lbAlarm.Text = string.Format("UNKNOWN ({0})", SystemTotalData.StatusData.batteryStatus); + lbAlarm.ForeColor = System.Drawing.Color.Red; + break; + } + } + else + { + lbStatus.Text = "OFF-LINE"; + lbStatus.ForeColor = System.Drawing.Color.Red; + lbAlarm.Text = "OFF-LINE"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + } + } + + #endregion + } +} diff --git a/LFP_Manager/Controls/ucMainStatus.resx b/LFP_Manager/Controls/ucMainStatus.resx new file mode 100644 index 0000000..fe317aa --- /dev/null +++ b/LFP_Manager/Controls/ucMainStatus.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/LFP_Manager/Controls/ucModuleMainA.Designer.cs b/LFP_Manager/Controls/ucModuleMainA.Designer.cs new file mode 100644 index 0000000..43f9d0f --- /dev/null +++ b/LFP_Manager/Controls/ucModuleMainA.Designer.cs @@ -0,0 +1,670 @@ + +namespace LFP_Manager.Controls +{ + partial class ucModuleMainA + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + DevExpress.XtraGauges.Core.Model.ScaleLabel scaleLabel2 = new DevExpress.XtraGauges.Core.Model.ScaleLabel(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState21 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState22 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState23 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState24 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState25 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState26 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState27 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState28 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState29 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState30 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState31 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState32 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState33 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState34 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState35 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState36 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState37 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState38 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState39 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + DevExpress.XtraGauges.Core.Model.ScaleIndicatorState scaleIndicatorState40 = new DevExpress.XtraGauges.Core.Model.ScaleIndicatorState(); + this.tabbedView = new DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView(this.components); + this.gbModuleMain = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.Root = new DevExpress.XtraLayout.LayoutControlGroup(); + this.gaugeControl1 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.lcitemSOC = new DevExpress.XtraLayout.LayoutControlItem(); + this.Level_Bars = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearGauge(); + this.linearScaleComponent1 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleComponent(); + this.linearScaleBackgroundLayerComponent1 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleBackgroundLayerComponent(); + this.linearScaleStateIndicatorComponent1 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent(); + this.linearScaleStateIndicatorComponent2 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent(); + this.linearScaleStateIndicatorComponent3 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent(); + this.linearScaleStateIndicatorComponent4 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent(); + this.linearScaleStateIndicatorComponent5 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent(); + this.linearScaleStateIndicatorComponent6 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent(); + this.linearScaleStateIndicatorComponent7 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent(); + this.linearScaleStateIndicatorComponent8 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent(); + this.linearScaleStateIndicatorComponent9 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent(); + this.linearScaleStateIndicatorComponent10 = new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent(); + this.gaugeControl2 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.digitalGauge4 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.digitalBackgroundLayerComponent1 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.lcitemMVolt = new DevExpress.XtraLayout.LayoutControlItem(); + this.gaugeControl3 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.lcitemCurrent = new DevExpress.XtraLayout.LayoutControlItem(); + this.digitalGauge1 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.digitalBackgroundLayerComponent2 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.gaugeControl4 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.lcitemAvgTemp = new DevExpress.XtraLayout.LayoutControlItem(); + this.digitalGauge2 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.digitalBackgroundLayerComponent3 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.btnDetailView = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + ((System.ComponentModel.ISupportInitialize)(this.tabbedView)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbModuleMain)).BeginInit(); + this.gbModuleMain.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemSOC)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.Level_Bars)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleComponent1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleBackgroundLayerComponent1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalGauge4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemMVolt)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemCurrent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalGauge1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemAvgTemp)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalGauge2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + this.SuspendLayout(); + // + // gbModuleMain + // + this.gbModuleMain.AppearanceCaption.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.gbModuleMain.AppearanceCaption.Options.UseFont = true; + this.gbModuleMain.Controls.Add(this.layoutControl1); + this.gbModuleMain.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbModuleMain.Location = new System.Drawing.Point(0, 0); + this.gbModuleMain.Name = "gbModuleMain"; + this.gbModuleMain.Size = new System.Drawing.Size(314, 258); + this.gbModuleMain.TabIndex = 0; + this.gbModuleMain.Text = "Module - #0"; + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.btnDetailView); + this.layoutControl1.Controls.Add(this.gaugeControl4); + this.layoutControl1.Controls.Add(this.gaugeControl3); + this.layoutControl1.Controls.Add(this.gaugeControl2); + this.layoutControl1.Controls.Add(this.gaugeControl1); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(2, 23); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1209, 352, 650, 400); + this.layoutControl1.Root = this.Root; + this.layoutControl1.Size = new System.Drawing.Size(310, 233); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // Root + // + this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.Root.GroupBordersVisible = false; + this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.lcitemSOC, + this.lcitemMVolt, + this.lcitemCurrent, + this.lcitemAvgTemp, + this.layoutControlItem5, + this.emptySpaceItem1}); + this.Root.Name = "Root"; + this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.Root.Size = new System.Drawing.Size(310, 233); + this.Root.TextVisible = false; + // + // gaugeControl1 + // + this.gaugeControl1.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.Level_Bars}); + this.gaugeControl1.Location = new System.Drawing.Point(3, 22); + this.gaugeControl1.Name = "gaugeControl1"; + this.gaugeControl1.Size = new System.Drawing.Size(105, 208); + this.gaugeControl1.TabIndex = 4; + // + // lcitemSOC + // + this.lcitemSOC.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lcitemSOC.AppearanceItemCaption.Options.UseFont = true; + this.lcitemSOC.AppearanceItemCaption.Options.UseTextOptions = true; + this.lcitemSOC.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lcitemSOC.Control = this.gaugeControl1; + this.lcitemSOC.Location = new System.Drawing.Point(0, 0); + this.lcitemSOC.MinSize = new System.Drawing.Size(109, 50); + this.lcitemSOC.Name = "lcitemSOC"; + this.lcitemSOC.Size = new System.Drawing.Size(109, 231); + this.lcitemSOC.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemSOC.Text = "SOC"; + this.lcitemSOC.TextLocation = DevExpress.Utils.Locations.Top; + this.lcitemSOC.TextSize = new System.Drawing.Size(25, 16); + // + // Level_Bars + // + this.Level_Bars.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleBackgroundLayerComponent[] { + this.linearScaleBackgroundLayerComponent1}); + this.Level_Bars.Bounds = new System.Drawing.Rectangle(6, 6, 93, 196); + this.Level_Bars.Indicators.AddRange(new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent[] { + this.linearScaleStateIndicatorComponent1, + this.linearScaleStateIndicatorComponent2, + this.linearScaleStateIndicatorComponent3, + this.linearScaleStateIndicatorComponent4, + this.linearScaleStateIndicatorComponent5, + this.linearScaleStateIndicatorComponent6, + this.linearScaleStateIndicatorComponent7, + this.linearScaleStateIndicatorComponent8, + this.linearScaleStateIndicatorComponent9, + this.linearScaleStateIndicatorComponent10}); + this.Level_Bars.Name = "Level_Bars"; + this.Level_Bars.Scales.AddRange(new DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleComponent[] { + this.linearScaleComponent1}); + // + // linearScaleComponent1 + // + this.linearScaleComponent1.AppearanceTickmarkText.TextBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:Black"); + this.linearScaleComponent1.EndPoint = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 225F); + scaleLabel2.AppearanceText.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold); + scaleLabel2.AppearanceText.TextBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:White"); + scaleLabel2.FormatString = "{0} {2:P0}"; + scaleLabel2.Name = "Label0"; + scaleLabel2.Position = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 125F); + scaleLabel2.Size = new System.Drawing.SizeF(100F, 30F); + scaleLabel2.Text = ""; + scaleLabel2.TextOrientation = DevExpress.XtraGauges.Core.Model.LabelOrientation.LeftToRight; + this.linearScaleComponent1.Labels.AddRange(new DevExpress.XtraGauges.Core.Model.ILabel[] { + scaleLabel2}); + this.linearScaleComponent1.MajorTickCount = 2; + this.linearScaleComponent1.MajorTickmark.FormatString = "{0:F0}"; + this.linearScaleComponent1.MajorTickmark.ShapeOffset = -20F; + this.linearScaleComponent1.MajorTickmark.ShapeType = DevExpress.XtraGauges.Core.Model.TickmarkShapeType.Linear_Style1_1; + this.linearScaleComponent1.MajorTickmark.ShowText = false; + this.linearScaleComponent1.MajorTickmark.ShowTick = false; + this.linearScaleComponent1.MajorTickmark.TextOffset = -32F; + this.linearScaleComponent1.MaxValue = 100F; + this.linearScaleComponent1.MinorTickCount = 0; + this.linearScaleComponent1.MinorTickmark.ShapeOffset = -14F; + this.linearScaleComponent1.MinorTickmark.ShapeType = DevExpress.XtraGauges.Core.Model.TickmarkShapeType.Linear_Style1_2; + this.linearScaleComponent1.MinorTickmark.ShowTick = false; + this.linearScaleComponent1.Name = "scale1"; + this.linearScaleComponent1.StartPoint = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 25F); + this.linearScaleComponent1.Value = 75F; + // + // linearScaleBackgroundLayerComponent1 + // + this.linearScaleBackgroundLayerComponent1.LinearScale = this.linearScaleComponent1; + this.linearScaleBackgroundLayerComponent1.Name = "bg1"; + this.linearScaleBackgroundLayerComponent1.ScaleEndPos = new DevExpress.XtraGauges.Core.Base.PointF2D(0.5F, 0.1F); + this.linearScaleBackgroundLayerComponent1.ScaleStartPos = new DevExpress.XtraGauges.Core.Base.PointF2D(0.5F, 0.9F); + this.linearScaleBackgroundLayerComponent1.ShapeType = DevExpress.XtraGauges.Core.Model.BackgroundLayerShapeType.Linear_Style10; + this.linearScaleBackgroundLayerComponent1.ZOrder = 1000; + // + // linearScaleStateIndicatorComponent1 + // + this.linearScaleStateIndicatorComponent1.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 225F); + this.linearScaleStateIndicatorComponent1.IndicatorScale = this.linearScaleComponent1; + this.linearScaleStateIndicatorComponent1.Name = "Indicator0"; + this.linearScaleStateIndicatorComponent1.Size = new System.Drawing.SizeF(58.5702F, 18.94918F); + scaleIndicatorState21.IntervalLength = 100F; + scaleIndicatorState21.Name = "Colored"; + scaleIndicatorState21.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer2; + scaleIndicatorState21.StartValue = 0.01F; + scaleIndicatorState22.IntervalLength = 0F; + scaleIndicatorState22.Name = "Empty"; + scaleIndicatorState22.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0; + this.linearScaleStateIndicatorComponent1.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] { + scaleIndicatorState21, + scaleIndicatorState22}); + this.linearScaleStateIndicatorComponent1.ZOrder = 100; + // + // linearScaleStateIndicatorComponent2 + // + this.linearScaleStateIndicatorComponent2.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 202.7778F); + this.linearScaleStateIndicatorComponent2.IndicatorScale = this.linearScaleComponent1; + this.linearScaleStateIndicatorComponent2.Name = "Indicator1"; + this.linearScaleStateIndicatorComponent2.Size = new System.Drawing.SizeF(58.5702F, 18.94918F); + scaleIndicatorState23.IntervalLength = 90F; + scaleIndicatorState23.Name = "Colored"; + scaleIndicatorState23.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer2; + scaleIndicatorState23.StartValue = 10F; + scaleIndicatorState24.IntervalLength = 10F; + scaleIndicatorState24.Name = "Empty"; + scaleIndicatorState24.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0; + this.linearScaleStateIndicatorComponent2.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] { + scaleIndicatorState23, + scaleIndicatorState24}); + this.linearScaleStateIndicatorComponent2.ZOrder = 99; + // + // linearScaleStateIndicatorComponent3 + // + this.linearScaleStateIndicatorComponent3.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 180.5556F); + this.linearScaleStateIndicatorComponent3.IndicatorScale = this.linearScaleComponent1; + this.linearScaleStateIndicatorComponent3.Name = "Indicator2"; + this.linearScaleStateIndicatorComponent3.Size = new System.Drawing.SizeF(58.5702F, 18.94918F); + scaleIndicatorState25.IntervalLength = 80F; + scaleIndicatorState25.Name = "Colored"; + scaleIndicatorState25.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer2; + scaleIndicatorState25.StartValue = 20F; + scaleIndicatorState26.IntervalLength = 20F; + scaleIndicatorState26.Name = "Empty"; + scaleIndicatorState26.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0; + this.linearScaleStateIndicatorComponent3.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] { + scaleIndicatorState25, + scaleIndicatorState26}); + this.linearScaleStateIndicatorComponent3.ZOrder = 98; + // + // linearScaleStateIndicatorComponent4 + // + this.linearScaleStateIndicatorComponent4.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 158.3333F); + this.linearScaleStateIndicatorComponent4.IndicatorScale = this.linearScaleComponent1; + this.linearScaleStateIndicatorComponent4.Name = "Indicator3"; + this.linearScaleStateIndicatorComponent4.Size = new System.Drawing.SizeF(58.5702F, 18.94918F); + scaleIndicatorState27.IntervalLength = 70F; + scaleIndicatorState27.Name = "Colored"; + scaleIndicatorState27.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer3; + scaleIndicatorState27.StartValue = 30F; + scaleIndicatorState28.IntervalLength = 30F; + scaleIndicatorState28.Name = "Empty"; + scaleIndicatorState28.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0; + this.linearScaleStateIndicatorComponent4.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] { + scaleIndicatorState27, + scaleIndicatorState28}); + this.linearScaleStateIndicatorComponent4.ZOrder = 97; + // + // linearScaleStateIndicatorComponent5 + // + this.linearScaleStateIndicatorComponent5.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 136.1111F); + this.linearScaleStateIndicatorComponent5.IndicatorScale = this.linearScaleComponent1; + this.linearScaleStateIndicatorComponent5.Name = "Indicator4"; + this.linearScaleStateIndicatorComponent5.Size = new System.Drawing.SizeF(58.5702F, 18.94918F); + scaleIndicatorState29.IntervalLength = 60F; + scaleIndicatorState29.Name = "Colored"; + scaleIndicatorState29.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer3; + scaleIndicatorState29.StartValue = 40F; + scaleIndicatorState30.IntervalLength = 40F; + scaleIndicatorState30.Name = "Empty"; + scaleIndicatorState30.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0; + this.linearScaleStateIndicatorComponent5.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] { + scaleIndicatorState29, + scaleIndicatorState30}); + this.linearScaleStateIndicatorComponent5.ZOrder = 96; + // + // linearScaleStateIndicatorComponent6 + // + this.linearScaleStateIndicatorComponent6.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 113.8889F); + this.linearScaleStateIndicatorComponent6.IndicatorScale = this.linearScaleComponent1; + this.linearScaleStateIndicatorComponent6.Name = "Indicator5"; + this.linearScaleStateIndicatorComponent6.Size = new System.Drawing.SizeF(58.5702F, 18.94918F); + scaleIndicatorState31.IntervalLength = 50F; + scaleIndicatorState31.Name = "Colored"; + scaleIndicatorState31.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer3; + scaleIndicatorState31.StartValue = 50F; + scaleIndicatorState32.IntervalLength = 50F; + scaleIndicatorState32.Name = "Empty"; + scaleIndicatorState32.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0; + this.linearScaleStateIndicatorComponent6.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] { + scaleIndicatorState31, + scaleIndicatorState32}); + this.linearScaleStateIndicatorComponent6.ZOrder = 95; + // + // linearScaleStateIndicatorComponent7 + // + this.linearScaleStateIndicatorComponent7.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 91.66667F); + this.linearScaleStateIndicatorComponent7.IndicatorScale = this.linearScaleComponent1; + this.linearScaleStateIndicatorComponent7.Name = "Indicator6"; + this.linearScaleStateIndicatorComponent7.Size = new System.Drawing.SizeF(58.5702F, 18.94918F); + scaleIndicatorState33.IntervalLength = 40F; + scaleIndicatorState33.Name = "Colored"; + scaleIndicatorState33.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer4; + scaleIndicatorState33.StartValue = 60F; + scaleIndicatorState34.IntervalLength = 60F; + scaleIndicatorState34.Name = "Empty"; + scaleIndicatorState34.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0; + this.linearScaleStateIndicatorComponent7.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] { + scaleIndicatorState33, + scaleIndicatorState34}); + this.linearScaleStateIndicatorComponent7.ZOrder = 94; + // + // linearScaleStateIndicatorComponent8 + // + this.linearScaleStateIndicatorComponent8.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 69.44444F); + this.linearScaleStateIndicatorComponent8.IndicatorScale = this.linearScaleComponent1; + this.linearScaleStateIndicatorComponent8.Name = "Indicator7"; + this.linearScaleStateIndicatorComponent8.Size = new System.Drawing.SizeF(58.5702F, 18.94918F); + scaleIndicatorState35.IntervalLength = 30F; + scaleIndicatorState35.Name = "Colored"; + scaleIndicatorState35.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer4; + scaleIndicatorState35.StartValue = 70F; + scaleIndicatorState36.IntervalLength = 70F; + scaleIndicatorState36.Name = "Empty"; + scaleIndicatorState36.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0; + this.linearScaleStateIndicatorComponent8.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] { + scaleIndicatorState35, + scaleIndicatorState36}); + this.linearScaleStateIndicatorComponent8.ZOrder = 93; + // + // linearScaleStateIndicatorComponent9 + // + this.linearScaleStateIndicatorComponent9.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 47.22222F); + this.linearScaleStateIndicatorComponent9.IndicatorScale = this.linearScaleComponent1; + this.linearScaleStateIndicatorComponent9.Name = "Indicator8"; + this.linearScaleStateIndicatorComponent9.Size = new System.Drawing.SizeF(58.5702F, 18.94918F); + scaleIndicatorState37.IntervalLength = 20F; + scaleIndicatorState37.Name = "Colored"; + scaleIndicatorState37.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer4; + scaleIndicatorState37.StartValue = 80F; + scaleIndicatorState38.IntervalLength = 80F; + scaleIndicatorState38.Name = "Empty"; + scaleIndicatorState38.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0; + this.linearScaleStateIndicatorComponent9.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] { + scaleIndicatorState37, + scaleIndicatorState38}); + this.linearScaleStateIndicatorComponent9.ZOrder = 92; + // + // linearScaleStateIndicatorComponent10 + // + this.linearScaleStateIndicatorComponent10.Center = new DevExpress.XtraGauges.Core.Base.PointF2D(62.5F, 25F); + this.linearScaleStateIndicatorComponent10.IndicatorScale = this.linearScaleComponent1; + this.linearScaleStateIndicatorComponent10.Name = "Indicator9"; + this.linearScaleStateIndicatorComponent10.Size = new System.Drawing.SizeF(58.5702F, 18.94918F); + scaleIndicatorState39.IntervalLength = 10F; + scaleIndicatorState39.Name = "Colored"; + scaleIndicatorState39.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer4; + scaleIndicatorState39.StartValue = 90F; + scaleIndicatorState40.IntervalLength = 90F; + scaleIndicatorState40.Name = "Empty"; + scaleIndicatorState40.ShapeType = DevExpress.XtraGauges.Core.Model.StateIndicatorShapeType.Equalizer0; + this.linearScaleStateIndicatorComponent10.States.AddRange(new DevExpress.XtraGauges.Core.Model.IIndicatorState[] { + scaleIndicatorState39, + scaleIndicatorState40}); + this.linearScaleStateIndicatorComponent10.ZOrder = 91; + // + // gaugeControl2 + // + this.gaugeControl2.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.digitalGauge4}); + this.gaugeControl2.Location = new System.Drawing.Point(167, 3); + this.gaugeControl2.Name = "gaugeControl2"; + this.gaugeControl2.Size = new System.Drawing.Size(140, 56); + this.gaugeControl2.TabIndex = 0; + // + // digitalGauge4 + // + this.digitalGauge4.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.digitalGauge4.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.digitalGauge4.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent1}); + this.digitalGauge4.Bounds = new System.Drawing.Rectangle(6, 6, 128, 44); + this.digitalGauge4.DigitCount = 5; + this.digitalGauge4.Name = "digitalGauge4"; + this.digitalGauge4.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.digitalGauge4.Text = "00,000"; + // + // digitalBackgroundLayerComponent1 + // + this.digitalBackgroundLayerComponent1.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F); + this.digitalBackgroundLayerComponent1.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent1.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent1.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent1.ZOrder = 1000; + // + // lcitemMVolt + // + this.lcitemMVolt.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lcitemMVolt.AppearanceItemCaption.Options.UseFont = true; + this.lcitemMVolt.Control = this.gaugeControl2; + this.lcitemMVolt.Location = new System.Drawing.Point(109, 0); + this.lcitemMVolt.MinSize = new System.Drawing.Size(100, 24); + this.lcitemMVolt.Name = "lcitemMVolt"; + this.lcitemMVolt.Size = new System.Drawing.Size(199, 60); + this.lcitemMVolt.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemMVolt.Text = " Volt"; + this.lcitemMVolt.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.lcitemMVolt.TextSize = new System.Drawing.Size(50, 16); + this.lcitemMVolt.TextToControlDistance = 5; + // + // gaugeControl3 + // + this.gaugeControl3.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.digitalGauge1}); + this.gaugeControl3.Location = new System.Drawing.Point(167, 63); + this.gaugeControl3.Name = "gaugeControl3"; + this.gaugeControl3.Size = new System.Drawing.Size(140, 56); + this.gaugeControl3.TabIndex = 5; + // + // lcitemCurrent + // + this.lcitemCurrent.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lcitemCurrent.AppearanceItemCaption.Options.UseFont = true; + this.lcitemCurrent.Control = this.gaugeControl3; + this.lcitemCurrent.Location = new System.Drawing.Point(109, 60); + this.lcitemCurrent.MinSize = new System.Drawing.Size(100, 24); + this.lcitemCurrent.Name = "lcitemCurrent"; + this.lcitemCurrent.Size = new System.Drawing.Size(199, 60); + this.lcitemCurrent.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemCurrent.Text = " Curr"; + this.lcitemCurrent.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.lcitemCurrent.TextSize = new System.Drawing.Size(50, 20); + this.lcitemCurrent.TextToControlDistance = 5; + // + // digitalGauge1 + // + this.digitalGauge1.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.digitalGauge1.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.digitalGauge1.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent2}); + this.digitalGauge1.Bounds = new System.Drawing.Rectangle(6, 6, 128, 44); + this.digitalGauge1.DigitCount = 5; + this.digitalGauge1.Name = "digitalGauge1"; + this.digitalGauge1.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.digitalGauge1.Text = "00,000"; + // + // digitalBackgroundLayerComponent2 + // + this.digitalBackgroundLayerComponent2.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F); + this.digitalBackgroundLayerComponent2.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent2.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent2.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent2.ZOrder = 1000; + // + // gaugeControl4 + // + this.gaugeControl4.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.digitalGauge2}); + this.gaugeControl4.Location = new System.Drawing.Point(167, 123); + this.gaugeControl4.Name = "gaugeControl4"; + this.gaugeControl4.Size = new System.Drawing.Size(140, 56); + this.gaugeControl4.TabIndex = 6; + // + // lcitemAvgTemp + // + this.lcitemAvgTemp.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lcitemAvgTemp.AppearanceItemCaption.Options.UseFont = true; + this.lcitemAvgTemp.Control = this.gaugeControl4; + this.lcitemAvgTemp.Location = new System.Drawing.Point(109, 120); + this.lcitemAvgTemp.MinSize = new System.Drawing.Size(100, 24); + this.lcitemAvgTemp.Name = "lcitemAvgTemp"; + this.lcitemAvgTemp.Size = new System.Drawing.Size(199, 60); + this.lcitemAvgTemp.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemAvgTemp.Text = " Temp"; + this.lcitemAvgTemp.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.lcitemAvgTemp.TextSize = new System.Drawing.Size(50, 16); + this.lcitemAvgTemp.TextToControlDistance = 5; + // + // digitalGauge2 + // + this.digitalGauge2.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.digitalGauge2.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.digitalGauge2.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent3}); + this.digitalGauge2.Bounds = new System.Drawing.Rectangle(6, 6, 128, 44); + this.digitalGauge2.DigitCount = 5; + this.digitalGauge2.Name = "digitalGauge2"; + this.digitalGauge2.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.digitalGauge2.Text = "00,000"; + // + // digitalBackgroundLayerComponent3 + // + this.digitalBackgroundLayerComponent3.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F); + this.digitalBackgroundLayerComponent3.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent3.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent3.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent3.ZOrder = 1000; + // + // btnDetailView + // + this.btnDetailView.Appearance.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnDetailView.Appearance.Options.UseFont = true; + this.btnDetailView.Location = new System.Drawing.Point(222, 183); + this.btnDetailView.Name = "btnDetailView"; + this.btnDetailView.Size = new System.Drawing.Size(85, 47); + this.btnDetailView.StyleController = this.layoutControl1; + this.btnDetailView.TabIndex = 7; + this.btnDetailView.Text = "Detail View"; + // + // layoutControlItem5 + // + this.layoutControlItem5.Control = this.btnDetailView; + this.layoutControlItem5.Location = new System.Drawing.Point(219, 180); + this.layoutControlItem5.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem5.Name = "layoutControlItem5"; + this.layoutControlItem5.Size = new System.Drawing.Size(89, 51); + this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem5.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.Location = new System.Drawing.Point(109, 180); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(110, 51); + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // ucModuleMainA + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.gbModuleMain); + this.MinimumSize = new System.Drawing.Size(300, 0); + this.Name = "ucModuleMainA"; + this.Size = new System.Drawing.Size(314, 258); + ((System.ComponentModel.ISupportInitialize)(this.tabbedView)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbModuleMain)).EndInit(); + this.gbModuleMain.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemSOC)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.Level_Bars)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleComponent1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleBackgroundLayerComponent1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.linearScaleStateIndicatorComponent10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalGauge4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemMVolt)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemCurrent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalGauge1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemAvgTemp)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalGauge2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + private DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView tabbedView; + private DevExpress.XtraEditors.GroupControl gbModuleMain; + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private DevExpress.XtraEditors.SimpleButton btnDetailView; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl4; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge digitalGauge2; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent3; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl3; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge digitalGauge1; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent2; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl2; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge digitalGauge4; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent1; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl1; + private DevExpress.XtraGauges.Win.Gauges.Linear.LinearGauge Level_Bars; + private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleBackgroundLayerComponent linearScaleBackgroundLayerComponent1; + private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleComponent linearScaleComponent1; + private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent1; + private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent2; + private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent3; + private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent4; + private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent5; + private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent6; + private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent7; + private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent8; + private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent9; + private DevExpress.XtraGauges.Win.Gauges.Linear.LinearScaleStateIndicatorComponent linearScaleStateIndicatorComponent10; + private DevExpress.XtraLayout.LayoutControlItem lcitemSOC; + private DevExpress.XtraLayout.LayoutControlItem lcitemMVolt; + private DevExpress.XtraLayout.LayoutControlItem lcitemCurrent; + private DevExpress.XtraLayout.LayoutControlItem lcitemAvgTemp; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + } +} diff --git a/LFP_Manager/Controls/ucModuleMainA.cs b/LFP_Manager/Controls/ucModuleMainA.cs new file mode 100644 index 0000000..3ab7480 --- /dev/null +++ b/LFP_Manager/Controls/ucModuleMainA.cs @@ -0,0 +1,21 @@ +using DevExpress.XtraEditors; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace LFP_Manager.Controls +{ + public partial class ucModuleMainA : DevExpress.XtraEditors.XtraUserControl + { + public ucModuleMainA() + { + InitializeComponent(); + } + } +} diff --git a/LFP_Manager/Controls/ucModuleMainA.resx b/LFP_Manager/Controls/ucModuleMainA.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/LFP_Manager/Controls/ucModuleMainA.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LFP_Manager/Controls/ucModuleMainB.Designer.cs b/LFP_Manager/Controls/ucModuleMainB.Designer.cs new file mode 100644 index 0000000..c5d29ff --- /dev/null +++ b/LFP_Manager/Controls/ucModuleMainB.Designer.cs @@ -0,0 +1,658 @@ + +namespace LFP_Manager.Controls +{ + partial class ucModuleMainB + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.gaugeControl6 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.gaugeTempMax = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.digitalBackgroundLayerComponent7 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.gaugeControl5 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.gaugeGapV = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.digitalBackgroundLayerComponent6 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.gaugeControl4 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.gaugeSOH = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.digitalBackgroundLayerComponent4 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.btnModuleDetail = new DevExpress.XtraEditors.SimpleButton(); + this.gaugeControl3 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.gaugeSOC = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.digitalBackgroundLayerComponent3 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.gaugeControl2 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.gaugeCurrent = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.digitalBackgroundLayerComponent2 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.gaugeControl1 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.gaugeVoltage = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.digitalBackgroundLayerComponent1 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.Root = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.slbOpStatus = new DevExpress.XtraLayout.SimpleLabelItem(); + this.slbAlarm = new DevExpress.XtraLayout.SimpleLabelItem(); + this.lcitemVolt = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcitemCurrent = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcitemSOC = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcitemSOH = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcItemModuleDetail = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.lbMdFwVer = new DevExpress.XtraLayout.SimpleLabelItem(); + this.tmrDisplay = new System.Windows.Forms.Timer(this.components); + this.digitalGauge1 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.digitalBackgroundLayerComponent5 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.lbModuleNumber = new DevExpress.XtraEditors.LabelControl(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.lcitemModuleNumber = new DevExpress.XtraLayout.LayoutControlItem(); + this.lbMdNo = new System.Windows.Forms.Label(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.gaugeTempMax)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gaugeGapV)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gaugeSOH)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gaugeSOC)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gaugeCurrent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gaugeVoltage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.slbOpStatus)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.slbAlarm)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemVolt)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemCurrent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemSOC)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemSOH)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemModuleDetail)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbMdFwVer)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalGauge1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemModuleNumber)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.AllowCustomization = false; + this.layoutControl1.Controls.Add(this.lbMdNo); + this.layoutControl1.Controls.Add(this.gaugeControl6); + this.layoutControl1.Controls.Add(this.gaugeControl5); + this.layoutControl1.Controls.Add(this.gaugeControl4); + this.layoutControl1.Controls.Add(this.btnModuleDetail); + this.layoutControl1.Controls.Add(this.gaugeControl3); + this.layoutControl1.Controls.Add(this.gaugeControl2); + this.layoutControl1.Controls.Add(this.gaugeControl1); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(775, 363, 650, 400); + this.layoutControl1.Root = this.Root; + this.layoutControl1.Size = new System.Drawing.Size(888, 54); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // gaugeControl6 + // + this.gaugeControl6.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.gaugeTempMax}); + this.gaugeControl6.Location = new System.Drawing.Point(648, 6); + this.gaugeControl6.Name = "gaugeControl6"; + this.gaugeControl6.Size = new System.Drawing.Size(94, 41); + this.gaugeControl6.TabIndex = 11; + // + // gaugeTempMax + // + this.gaugeTempMax.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.gaugeTempMax.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.gaugeTempMax.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent7}); + this.gaugeTempMax.Bounds = new System.Drawing.Rectangle(6, 6, 82, 29); + this.gaugeTempMax.DigitCount = 4; + this.gaugeTempMax.Name = "gaugeTempMax"; + this.gaugeTempMax.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.gaugeTempMax.Text = "00,000"; + // + // digitalBackgroundLayerComponent7 + // + this.digitalBackgroundLayerComponent7.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F); + this.digitalBackgroundLayerComponent7.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent7.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent7.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent7.ZOrder = 1000; + // + // gaugeControl5 + // + this.gaugeControl5.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.gaugeGapV}); + this.gaugeControl5.Location = new System.Drawing.Point(746, 6); + this.gaugeControl5.Name = "gaugeControl5"; + this.gaugeControl5.Size = new System.Drawing.Size(94, 41); + this.gaugeControl5.TabIndex = 10; + // + // gaugeGapV + // + this.gaugeGapV.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.gaugeGapV.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.gaugeGapV.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent6}); + this.gaugeGapV.Bounds = new System.Drawing.Rectangle(6, 6, 82, 29); + this.gaugeGapV.DigitCount = 4; + this.gaugeGapV.Name = "gaugeGapV"; + this.gaugeGapV.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.gaugeGapV.Text = "00,000"; + // + // digitalBackgroundLayerComponent6 + // + this.digitalBackgroundLayerComponent6.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F); + this.digitalBackgroundLayerComponent6.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent6.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent6.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent6.ZOrder = 1000; + // + // gaugeControl4 + // + this.gaugeControl4.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.gaugeSOH}); + this.gaugeControl4.Location = new System.Drawing.Point(550, 6); + this.gaugeControl4.Name = "gaugeControl4"; + this.gaugeControl4.Size = new System.Drawing.Size(94, 41); + this.gaugeControl4.TabIndex = 8; + // + // gaugeSOH + // + this.gaugeSOH.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.gaugeSOH.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.gaugeSOH.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent4}); + this.gaugeSOH.Bounds = new System.Drawing.Rectangle(6, 6, 82, 29); + this.gaugeSOH.DigitCount = 4; + this.gaugeSOH.Name = "gaugeSOH"; + this.gaugeSOH.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.gaugeSOH.Text = "00,000"; + // + // digitalBackgroundLayerComponent4 + // + this.digitalBackgroundLayerComponent4.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F); + this.digitalBackgroundLayerComponent4.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent4.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent4.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent4.ZOrder = 1000; + // + // btnModuleDetail + // + this.btnModuleDetail.Location = new System.Drawing.Point(844, 6); + this.btnModuleDetail.Name = "btnModuleDetail"; + this.btnModuleDetail.Size = new System.Drawing.Size(37, 41); + this.btnModuleDetail.StyleController = this.layoutControl1; + this.btnModuleDetail.TabIndex = 7; + this.btnModuleDetail.Text = "Detail"; + this.btnModuleDetail.Click += new System.EventHandler(this.btnModuleDetail_Click); + // + // gaugeControl3 + // + this.gaugeControl3.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.gaugeSOC}); + this.gaugeControl3.Location = new System.Drawing.Point(452, 6); + this.gaugeControl3.Name = "gaugeControl3"; + this.gaugeControl3.Size = new System.Drawing.Size(94, 41); + this.gaugeControl3.TabIndex = 6; + // + // gaugeSOC + // + this.gaugeSOC.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.gaugeSOC.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.gaugeSOC.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent3}); + this.gaugeSOC.Bounds = new System.Drawing.Rectangle(6, 6, 82, 29); + this.gaugeSOC.DigitCount = 4; + this.gaugeSOC.Name = "gaugeSOC"; + this.gaugeSOC.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.gaugeSOC.Text = "00,000"; + // + // digitalBackgroundLayerComponent3 + // + this.digitalBackgroundLayerComponent3.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F); + this.digitalBackgroundLayerComponent3.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent3.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent3.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent3.ZOrder = 1000; + // + // gaugeControl2 + // + this.gaugeControl2.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.gaugeCurrent}); + this.gaugeControl2.Location = new System.Drawing.Point(354, 6); + this.gaugeControl2.Name = "gaugeControl2"; + this.gaugeControl2.Size = new System.Drawing.Size(94, 41); + this.gaugeControl2.TabIndex = 5; + // + // gaugeCurrent + // + this.gaugeCurrent.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.gaugeCurrent.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.gaugeCurrent.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent2}); + this.gaugeCurrent.Bounds = new System.Drawing.Rectangle(6, 6, 82, 29); + this.gaugeCurrent.DigitCount = 4; + this.gaugeCurrent.Name = "gaugeCurrent"; + this.gaugeCurrent.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.gaugeCurrent.Text = "00,000"; + // + // digitalBackgroundLayerComponent2 + // + this.digitalBackgroundLayerComponent2.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F); + this.digitalBackgroundLayerComponent2.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent2.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent2.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent2.ZOrder = 1000; + // + // gaugeControl1 + // + this.gaugeControl1.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.gaugeVoltage}); + this.gaugeControl1.Location = new System.Drawing.Point(256, 6); + this.gaugeControl1.Name = "gaugeControl1"; + this.gaugeControl1.Size = new System.Drawing.Size(94, 41); + this.gaugeControl1.TabIndex = 4; + // + // gaugeVoltage + // + this.gaugeVoltage.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.gaugeVoltage.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.gaugeVoltage.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent1}); + this.gaugeVoltage.Bounds = new System.Drawing.Rectangle(6, 6, 82, 29); + this.gaugeVoltage.DigitCount = 4; + this.gaugeVoltage.Name = "gaugeVoltage"; + this.gaugeVoltage.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.gaugeVoltage.Text = "00,000"; + // + // digitalBackgroundLayerComponent1 + // + this.digitalBackgroundLayerComponent1.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F); + this.digitalBackgroundLayerComponent1.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent1.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent1.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent1.ZOrder = 1000; + // + // Root + // + this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.Root.GroupBordersVisible = false; + this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlGroup2}); + this.Root.Name = "Root"; + this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.Root.Size = new System.Drawing.Size(888, 54); + this.Root.TextVisible = false; + // + // layoutControlGroup2 + // + this.layoutControlGroup2.AppearanceGroup.Options.UseTextOptions = true; + this.layoutControlGroup2.AppearanceGroup.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.layoutControlGroup2.AppearanceItemCaption.Options.UseTextOptions = true; + this.layoutControlGroup2.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.layoutControlGroup2.AppearanceItemCaption.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Center; + this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.slbOpStatus, + this.slbAlarm, + this.lcitemVolt, + this.lcitemCurrent, + this.lcitemSOC, + this.lcitemSOH, + this.layoutControlItem1, + this.lcItemModuleDetail, + this.layoutControlItem3, + this.lbMdFwVer, + this.layoutControlItem2}); + this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup2.Name = "layoutControlGroup2"; + this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup2.Size = new System.Drawing.Size(886, 52); + this.layoutControlGroup2.Text = "MD"; + this.layoutControlGroup2.TextLocation = DevExpress.Utils.Locations.Left; + // + // slbOpStatus + // + this.slbOpStatus.AllowHotTrack = false; + this.slbOpStatus.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold); + this.slbOpStatus.AppearanceItemCaption.Options.UseFont = true; + this.slbOpStatus.AppearanceItemCaption.Options.UseTextOptions = true; + this.slbOpStatus.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.slbOpStatus.Location = new System.Drawing.Point(48, 0); + this.slbOpStatus.MinSize = new System.Drawing.Size(60, 18); + this.slbOpStatus.Name = "slbOpStatus"; + this.slbOpStatus.Size = new System.Drawing.Size(60, 45); + this.slbOpStatus.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.slbOpStatus.Text = "DCH"; + this.slbOpStatus.TextSize = new System.Drawing.Size(40, 16); + // + // slbAlarm + // + this.slbAlarm.AllowHotTrack = false; + this.slbAlarm.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold); + this.slbAlarm.AppearanceItemCaption.Options.UseFont = true; + this.slbAlarm.AppearanceItemCaption.Options.UseTextOptions = true; + this.slbAlarm.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.slbAlarm.Location = new System.Drawing.Point(108, 0); + this.slbAlarm.MinSize = new System.Drawing.Size(60, 18); + this.slbAlarm.Name = "slbAlarm"; + this.slbAlarm.OptionsTableLayoutItem.RowIndex = 2; + this.slbAlarm.Size = new System.Drawing.Size(60, 45); + this.slbAlarm.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.slbAlarm.Text = "WARN"; + this.slbAlarm.TextSize = new System.Drawing.Size(40, 16); + // + // lcitemVolt + // + this.lcitemVolt.Control = this.gaugeControl1; + this.lcitemVolt.Location = new System.Drawing.Point(227, 0); + this.lcitemVolt.MinSize = new System.Drawing.Size(98, 41); + this.lcitemVolt.Name = "lcitemVolt"; + this.lcitemVolt.OptionsTableLayoutItem.ColumnIndex = 1; + this.lcitemVolt.Size = new System.Drawing.Size(98, 45); + this.lcitemVolt.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemVolt.Text = "Voltage"; + this.lcitemVolt.TextLocation = DevExpress.Utils.Locations.Top; + this.lcitemVolt.TextSize = new System.Drawing.Size(0, 0); + this.lcitemVolt.TextVisible = false; + // + // lcitemCurrent + // + this.lcitemCurrent.Control = this.gaugeControl2; + this.lcitemCurrent.Location = new System.Drawing.Point(325, 0); + this.lcitemCurrent.MinSize = new System.Drawing.Size(98, 41); + this.lcitemCurrent.Name = "lcitemCurrent"; + this.lcitemCurrent.OptionsTableLayoutItem.RowIndex = 1; + this.lcitemCurrent.Size = new System.Drawing.Size(98, 45); + this.lcitemCurrent.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemCurrent.Text = "Current"; + this.lcitemCurrent.TextLocation = DevExpress.Utils.Locations.Top; + this.lcitemCurrent.TextSize = new System.Drawing.Size(0, 0); + this.lcitemCurrent.TextVisible = false; + // + // lcitemSOC + // + this.lcitemSOC.Control = this.gaugeControl3; + this.lcitemSOC.Location = new System.Drawing.Point(423, 0); + this.lcitemSOC.MinSize = new System.Drawing.Size(98, 41); + this.lcitemSOC.Name = "lcitemSOC"; + this.lcitemSOC.OptionsTableLayoutItem.ColumnIndex = 1; + this.lcitemSOC.OptionsTableLayoutItem.RowIndex = 1; + this.lcitemSOC.Size = new System.Drawing.Size(98, 45); + this.lcitemSOC.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemSOC.Text = "SOC"; + this.lcitemSOC.TextLocation = DevExpress.Utils.Locations.Top; + this.lcitemSOC.TextSize = new System.Drawing.Size(0, 0); + this.lcitemSOC.TextVisible = false; + // + // lcitemSOH + // + this.lcitemSOH.Control = this.gaugeControl4; + this.lcitemSOH.Location = new System.Drawing.Point(521, 0); + this.lcitemSOH.MinSize = new System.Drawing.Size(98, 41); + this.lcitemSOH.Name = "lcitemSOH"; + this.lcitemSOH.OptionsTableLayoutItem.RowIndex = 3; + this.lcitemSOH.Size = new System.Drawing.Size(98, 45); + this.lcitemSOH.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemSOH.Text = "SOH"; + this.lcitemSOH.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.lcitemSOH.TextLocation = DevExpress.Utils.Locations.Left; + this.lcitemSOH.TextSize = new System.Drawing.Size(0, 0); + this.lcitemSOH.TextToControlDistance = 0; + this.lcitemSOH.TextVisible = false; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.gaugeControl5; + this.layoutControlItem1.Location = new System.Drawing.Point(717, 0); + this.layoutControlItem1.MinSize = new System.Drawing.Size(98, 41); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(98, 45); + this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem1.Text = "GapV"; + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // lcItemModuleDetail + // + this.lcItemModuleDetail.Control = this.btnModuleDetail; + this.lcItemModuleDetail.Location = new System.Drawing.Point(815, 0); + this.lcItemModuleDetail.MinSize = new System.Drawing.Size(41, 26); + this.lcItemModuleDetail.Name = "lcItemModuleDetail"; + this.lcItemModuleDetail.OptionsTableLayoutItem.ColumnIndex = 1; + this.lcItemModuleDetail.OptionsTableLayoutItem.RowIndex = 2; + this.lcItemModuleDetail.Size = new System.Drawing.Size(41, 45); + this.lcItemModuleDetail.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcItemModuleDetail.TextSize = new System.Drawing.Size(0, 0); + this.lcItemModuleDetail.TextVisible = false; + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.gaugeControl6; + this.layoutControlItem3.CustomizationFormText = "Temp Max."; + this.layoutControlItem3.Location = new System.Drawing.Point(619, 0); + this.layoutControlItem3.MinSize = new System.Drawing.Size(98, 41); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(98, 45); + this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextVisible = false; + // + // lbMdFwVer + // + this.lbMdFwVer.AllowHotTrack = false; + this.lbMdFwVer.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 10F); + this.lbMdFwVer.AppearanceItemCaption.Options.UseFont = true; + this.lbMdFwVer.Location = new System.Drawing.Point(168, 0); + this.lbMdFwVer.Name = "lbMdFwVer"; + this.lbMdFwVer.Size = new System.Drawing.Size(59, 45); + this.lbMdFwVer.Text = "----"; + this.lbMdFwVer.TextSize = new System.Drawing.Size(40, 16); + // + // tmrDisplay + // + this.tmrDisplay.Enabled = true; + this.tmrDisplay.Interval = 500; + this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick); + // + // digitalGauge1 + // + this.digitalGauge1.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.digitalGauge1.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.digitalGauge1.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent5}); + this.digitalGauge1.Bounds = new System.Drawing.Rectangle(6, 6, 204, 35); + this.digitalGauge1.DigitCount = 4; + this.digitalGauge1.Name = "digitalGauge1"; + this.digitalGauge1.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.digitalGauge1.Text = "00,000"; + // + // digitalBackgroundLayerComponent5 + // + this.digitalBackgroundLayerComponent5.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(217.85F, 99.9625F); + this.digitalBackgroundLayerComponent5.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent5.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent5.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent5.ZOrder = 1000; + // + // lbModuleNumber + // + this.lbModuleNumber.Appearance.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbModuleNumber.Appearance.Options.UseFont = true; + this.lbModuleNumber.Appearance.Options.UseTextOptions = true; + this.lbModuleNumber.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lbModuleNumber.Location = new System.Drawing.Point(3, 3); + this.lbModuleNumber.Name = "lbModuleNumber"; + this.lbModuleNumber.Size = new System.Drawing.Size(0, 19); + this.lbModuleNumber.TabIndex = 4; + // + // layoutControlGroup1 + // + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.lcitemModuleNumber}); + this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup1.Name = "Root"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup1.Size = new System.Drawing.Size(46, 33); + this.layoutControlGroup1.TextVisible = false; + // + // lcitemModuleNumber + // + this.lcitemModuleNumber.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lcitemModuleNumber.AppearanceItemCaption.Options.UseFont = true; + this.lcitemModuleNumber.AppearanceItemCaption.Options.UseTextOptions = true; + this.lcitemModuleNumber.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lcitemModuleNumber.Control = this.lbModuleNumber; + this.lcitemModuleNumber.CustomizationFormText = "lcitemModuleNumber"; + this.lcitemModuleNumber.Location = new System.Drawing.Point(0, 0); + this.lcitemModuleNumber.MinSize = new System.Drawing.Size(40, 18); + this.lcitemModuleNumber.Name = "lcitemModuleNumber"; + this.lcitemModuleNumber.Size = new System.Drawing.Size(44, 31); + this.lcitemModuleNumber.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemModuleNumber.TextSize = new System.Drawing.Size(0, 0); + this.lcitemModuleNumber.TextVisible = false; + // + // lbMdNo + // + this.lbMdNo.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold); + this.lbMdNo.Location = new System.Drawing.Point(29, 6); + this.lbMdNo.Name = "lbMdNo"; + this.lbMdNo.Size = new System.Drawing.Size(44, 41); + this.lbMdNo.TabIndex = 12; + this.lbMdNo.Text = "#01"; + this.lbMdNo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.lbMdNo; + this.layoutControlItem2.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem2.MinSize = new System.Drawing.Size(24, 24); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(48, 45); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // ucModuleMainB + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.layoutControl1); + this.Margin = new System.Windows.Forms.Padding(0); + this.MinimumSize = new System.Drawing.Size(840, 54); + this.Name = "ucModuleMainB"; + this.Size = new System.Drawing.Size(888, 54); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.gaugeTempMax)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gaugeGapV)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gaugeSOH)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gaugeSOC)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gaugeCurrent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gaugeVoltage)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.slbOpStatus)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.slbAlarm)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemVolt)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemCurrent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemSOC)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemSOH)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemModuleDetail)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbMdFwVer)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalGauge1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemModuleNumber)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl1; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl2; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge gaugeCurrent; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent2; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl3; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge gaugeSOC; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent3; + private DevExpress.XtraEditors.SimpleButton btnModuleDetail; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl4; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge gaugeSOH; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent4; + private System.Windows.Forms.Timer tmrDisplay; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge digitalGauge1; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent5; + private DevExpress.XtraLayout.LayoutControlItem lcItemModuleDetail; + private DevExpress.XtraLayout.SimpleLabelItem slbOpStatus; + private DevExpress.XtraLayout.SimpleLabelItem slbAlarm; + private DevExpress.XtraLayout.LayoutControlItem lcitemVolt; + private DevExpress.XtraLayout.LayoutControlItem lcitemCurrent; + private DevExpress.XtraLayout.LayoutControlItem lcitemSOC; + private DevExpress.XtraLayout.LayoutControlItem lcitemSOH; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl5; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge gaugeGapV; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent6; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl6; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge gaugeTempMax; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent7; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge gaugeVoltage; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent1; + private DevExpress.XtraLayout.SimpleLabelItem lbMdFwVer; + private DevExpress.XtraEditors.LabelControl lbModuleNumber; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraLayout.LayoutControlItem lcitemModuleNumber; + private System.Windows.Forms.Label lbMdNo; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + } +} diff --git a/LFP_Manager/Controls/ucModuleMainB.cs b/LFP_Manager/Controls/ucModuleMainB.cs new file mode 100644 index 0000000..ca9b986 --- /dev/null +++ b/LFP_Manager/Controls/ucModuleMainB.cs @@ -0,0 +1,191 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +using DevExpress.XtraEditors; +using LFP_Manager.DataStructure; +using static LFP_Manager.DataStructure.csDbConstData; + +namespace LFP_Manager.Controls +{ + public partial class ucModuleMainB : DevExpress.XtraEditors.XtraUserControl + { + #region VARIABLES + + private int mID = 0; + private CommConfig Config; + private DeviceSystemData SystemData; + private DeviceParamData ParamData; + private DeviceCalibration CalibData; + + public event CommandEvent OnCommand = null; + + #endregion + + #region CONSTRUCTORS + public ucModuleMainB() + { + InitializeComponent(); + } + + public ucModuleMainB(CommConfig aConfig, int aID, ref DeviceSystemData mSystemData) + { + InitializeComponent(); + + Config = aConfig; + mID = aID; + SystemData = mSystemData; + + lbMdNo.Text = String.Format("#{0:00}", mID); + + tmrDisplay.Start(); + } + #endregion + + #region PUBLIC FUNCTION + + public void UpdateData(ref DeviceSystemData mSystemData) + { + SystemData = mSystemData; + } + + #endregion + + #region TIMER EVENT + private void tmrDisplay_Tick(object sender, EventArgs e) + { + DisplayValue(); + DisplayStatusAndAlarm(); + } + + #endregion + + #region BUTTON EVENT + private void btnModuleDetail_Click(object sender, EventArgs e) + { + OnCommand?.Invoke(mID, 2, 0, 1, ref ParamData, ref CalibData); + } + #endregion + + #region DISPLAY DATA + + private void DisplayMainStatus() + { + if (SystemData.CommFail == false) + { + + } + else + { + lbMdNo.BackColor = Color.Orange; + } + + } + + private void DisplayValue() + { + lbMdFwVer.Text = SystemData.Information.SwProductRev; + gaugeVoltage.Text = String.Format("{0:0.0}", (double)SystemData.ValueData.voltageOfPack / 10); + gaugeCurrent.Text = String.Format("{0:0.0}", (double)SystemData.ValueData.current / 10); + gaugeSOC.Text = String.Format("{0:0.0}", (double)SystemData.ValueData.rSOC / 10); + gaugeSOH.Text = String.Format("{0:0.0}", (double)SystemData.ValueData.stateOfHealth / 10); + gaugeTempMax.Text = String.Format("{0:0.0}", (double)SystemData.AvgData.maxTemp / 10); + gaugeGapV.Text = String.Format("{0:0.000}", (double)SystemData.AvgData.diffCellVoltage / 1000); + } + + private void DisplayStatusAndAlarm() + { + if (SystemData.CommFail == false) + { + if (SystemData.ShelfCommFail == false) + { + switch (SystemData.StatusData.status) + { + case 0x0000: // Stand by + slbOpStatus.Text = "STANDBY"; + slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Black; + break; + case 0x0001: // Charging + slbOpStatus.Text = "CHARGING"; + slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Blue; + break; + case 0x0002: // Discharging + slbOpStatus.Text = "DISCHARGING"; + slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Magenta; + break; + case 0x0003: // Float Charging + slbOpStatus.Text = "FLOATING"; + slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Black; + break; + case 0x0004: // Warming Up + slbOpStatus.Text = "WARMING UP"; + slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Black; + break; + default: + slbOpStatus.Text = "UNKNOWN"; + slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Black; + break; + } + // Alarm Display + switch (SystemData.StatusData.batteryStatus) + { + case 0: // NORMAL + slbAlarm.Text = "NORMAL"; + slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Green; + break; + case 1: // WARNING + slbAlarm.Text = "WARNING"; + slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Yellow; + break; + case 2: // FAULT + slbAlarm.Text = "FAULT"; + slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red; + break; + case 3: // WARMING UP + slbAlarm.Text = "WARMING UP"; + slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Black; + break; + case 4: // FAULT (Anti-Theft Comm.) + slbAlarm.Text = "FAULT1"; + slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red; + break; + case 5: // FAULT (Anti-Theft Gyro-Scope) + slbAlarm.Text = "FAULT2"; + slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red; + break; + default: + slbAlarm.Text = string.Format("UNKNOWN ({0})", SystemData.StatusData.batteryStatus); + slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red; + break; + } + } + else + { + slbOpStatus.Text = "COMM FAIL"; + slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red; + slbAlarm.Text = "COMM FAIL"; + slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red; + lbMdNo.BackColor = System.Drawing.Color.Orange; + } + } + else + { + slbOpStatus.Text = "OFF LINE"; + slbOpStatus.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red; + slbAlarm.Text = "OFF LINE"; + slbAlarm.AppearanceItemCaption.ForeColor = System.Drawing.Color.Red; + lbMdNo.BackColor = System.Drawing.Color.Orange; + } + + // Charge Relay Status Display + } + + #endregion + } +} diff --git a/LFP_Manager/Controls/ucModuleMainB.resx b/LFP_Manager/Controls/ucModuleMainB.resx new file mode 100644 index 0000000..fe317aa --- /dev/null +++ b/LFP_Manager/Controls/ucModuleMainB.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/LFP_Manager/Controls/ucModuleMainHeader.Designer.cs b/LFP_Manager/Controls/ucModuleMainHeader.Designer.cs new file mode 100644 index 0000000..b2c1c4f --- /dev/null +++ b/LFP_Manager/Controls/ucModuleMainHeader.Designer.cs @@ -0,0 +1,295 @@ +namespace LFP_Manager.Controls +{ + partial class ucModuleMainHeader + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.Root = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.simpleLabelItem1 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.simpleLabelItem2 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.simpleLabelItem4 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.simpleLabelItem3 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.simpleLabelItem5 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.simpleLabelItem6 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.simpleLabelItem7 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.simpleLabelItem8 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.simpleLabelItem9 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.simpleLabelItem10 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.lbFwVer = new DevExpress.XtraLayout.SimpleLabelItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbFwVer)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1132, 485, 650, 400); + this.layoutControl1.Root = this.Root; + this.layoutControl1.Size = new System.Drawing.Size(888, 30); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // Root + // + this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.Root.GroupBordersVisible = false; + this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlGroup1}); + this.Root.Name = "Root"; + this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(3, 3, 3, 3); + this.Root.Size = new System.Drawing.Size(888, 30); + this.Root.TextVisible = false; + // + // layoutControlGroup1 + // + this.layoutControlGroup1.AppearanceGroup.Options.UseTextOptions = true; + this.layoutControlGroup1.AppearanceGroup.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.layoutControlGroup1.CustomizationFormText = "MD"; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.simpleLabelItem1, + this.simpleLabelItem2, + this.simpleLabelItem4, + this.simpleLabelItem3, + this.simpleLabelItem5, + this.simpleLabelItem6, + this.simpleLabelItem7, + this.simpleLabelItem8, + this.simpleLabelItem9, + this.simpleLabelItem10, + this.lbFwVer}); + this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup1.Name = "layoutControlGroup1"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + this.layoutControlGroup1.Size = new System.Drawing.Size(882, 24); + this.layoutControlGroup1.Spacing = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + this.layoutControlGroup1.Text = "-"; + this.layoutControlGroup1.TextLocation = DevExpress.Utils.Locations.Left; + // + // simpleLabelItem1 + // + this.simpleLabelItem1.AllowHotTrack = false; + this.simpleLabelItem1.AppearanceItemCaption.Options.UseTextOptions = true; + this.simpleLabelItem1.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.simpleLabelItem1.Location = new System.Drawing.Point(0, 0); + this.simpleLabelItem1.MinSize = new System.Drawing.Size(40, 1); + this.simpleLabelItem1.Name = "simpleLabelItem1"; + this.simpleLabelItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + this.simpleLabelItem1.Size = new System.Drawing.Size(40, 23); + this.simpleLabelItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem1.Text = "NO"; + this.simpleLabelItem1.TextSize = new System.Drawing.Size(82, 14); + // + // simpleLabelItem2 + // + this.simpleLabelItem2.AllowHotTrack = false; + this.simpleLabelItem2.AppearanceItemCaption.Options.UseTextOptions = true; + this.simpleLabelItem2.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.simpleLabelItem2.Location = new System.Drawing.Point(40, 0); + this.simpleLabelItem2.MinSize = new System.Drawing.Size(55, 1); + this.simpleLabelItem2.Name = "simpleLabelItem2"; + this.simpleLabelItem2.Size = new System.Drawing.Size(55, 23); + this.simpleLabelItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem2.Text = "Status"; + this.simpleLabelItem2.TextSize = new System.Drawing.Size(82, 14); + // + // simpleLabelItem4 + // + this.simpleLabelItem4.AllowHotTrack = false; + this.simpleLabelItem4.AppearanceItemCaption.Options.UseTextOptions = true; + this.simpleLabelItem4.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.simpleLabelItem4.Location = new System.Drawing.Point(236, 0); + this.simpleLabelItem4.MinSize = new System.Drawing.Size(98, 1); + this.simpleLabelItem4.Name = "simpleLabelItem4"; + this.simpleLabelItem4.Size = new System.Drawing.Size(98, 23); + this.simpleLabelItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem4.Text = "Voltage [V]"; + this.simpleLabelItem4.TextSize = new System.Drawing.Size(82, 14); + // + // simpleLabelItem3 + // + this.simpleLabelItem3.AllowHotTrack = false; + this.simpleLabelItem3.AppearanceItemCaption.Options.UseTextOptions = true; + this.simpleLabelItem3.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.simpleLabelItem3.Location = new System.Drawing.Point(95, 0); + this.simpleLabelItem3.MinSize = new System.Drawing.Size(55, 1); + this.simpleLabelItem3.Name = "simpleLabelItem3"; + this.simpleLabelItem3.Size = new System.Drawing.Size(55, 23); + this.simpleLabelItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem3.Text = "Alarm"; + this.simpleLabelItem3.TextSize = new System.Drawing.Size(82, 14); + // + // simpleLabelItem5 + // + this.simpleLabelItem5.AllowHotTrack = false; + this.simpleLabelItem5.AppearanceItemCaption.Options.UseTextOptions = true; + this.simpleLabelItem5.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.simpleLabelItem5.Location = new System.Drawing.Point(334, 0); + this.simpleLabelItem5.MinSize = new System.Drawing.Size(98, 1); + this.simpleLabelItem5.Name = "simpleLabelItem5"; + this.simpleLabelItem5.Size = new System.Drawing.Size(98, 23); + this.simpleLabelItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem5.Text = "Current [A]"; + this.simpleLabelItem5.TextSize = new System.Drawing.Size(82, 14); + // + // simpleLabelItem6 + // + this.simpleLabelItem6.AllowHotTrack = false; + this.simpleLabelItem6.AppearanceItemCaption.Options.UseTextOptions = true; + this.simpleLabelItem6.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.simpleLabelItem6.Location = new System.Drawing.Point(432, 0); + this.simpleLabelItem6.MinSize = new System.Drawing.Size(98, 1); + this.simpleLabelItem6.Name = "simpleLabelItem6"; + this.simpleLabelItem6.Size = new System.Drawing.Size(98, 23); + this.simpleLabelItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem6.Text = "SOC [%]"; + this.simpleLabelItem6.TextSize = new System.Drawing.Size(82, 14); + // + // simpleLabelItem7 + // + this.simpleLabelItem7.AllowHotTrack = false; + this.simpleLabelItem7.AppearanceItemCaption.Options.UseTextOptions = true; + this.simpleLabelItem7.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.simpleLabelItem7.Location = new System.Drawing.Point(530, 0); + this.simpleLabelItem7.MinSize = new System.Drawing.Size(98, 1); + this.simpleLabelItem7.Name = "simpleLabelItem7"; + this.simpleLabelItem7.Size = new System.Drawing.Size(98, 23); + this.simpleLabelItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem7.Text = "SOH [%]"; + this.simpleLabelItem7.TextSize = new System.Drawing.Size(82, 14); + // + // simpleLabelItem8 + // + this.simpleLabelItem8.AllowHotTrack = false; + this.simpleLabelItem8.AppearanceItemCaption.Options.UseTextOptions = true; + this.simpleLabelItem8.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.simpleLabelItem8.Location = new System.Drawing.Point(824, 0); + this.simpleLabelItem8.MinSize = new System.Drawing.Size(1, 1); + this.simpleLabelItem8.Name = "simpleLabelItem8"; + this.simpleLabelItem8.Size = new System.Drawing.Size(34, 23); + this.simpleLabelItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem8.Text = "CMD"; + this.simpleLabelItem8.TextSize = new System.Drawing.Size(82, 14); + // + // simpleLabelItem9 + // + this.simpleLabelItem9.AllowHotTrack = false; + this.simpleLabelItem9.AppearanceItemCaption.Options.UseTextOptions = true; + this.simpleLabelItem9.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.simpleLabelItem9.CustomizationFormText = "Temp Max. [C]"; + this.simpleLabelItem9.Location = new System.Drawing.Point(628, 0); + this.simpleLabelItem9.MinSize = new System.Drawing.Size(98, 1); + this.simpleLabelItem9.Name = "simpleLabelItem9"; + this.simpleLabelItem9.Size = new System.Drawing.Size(98, 23); + this.simpleLabelItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem9.Text = "Temp Max. [C]"; + this.simpleLabelItem9.TextSize = new System.Drawing.Size(82, 14); + // + // simpleLabelItem10 + // + this.simpleLabelItem10.AllowHotTrack = false; + this.simpleLabelItem10.AppearanceItemCaption.Options.UseTextOptions = true; + this.simpleLabelItem10.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.simpleLabelItem10.Location = new System.Drawing.Point(726, 0); + this.simpleLabelItem10.MinSize = new System.Drawing.Size(98, 1); + this.simpleLabelItem10.Name = "simpleLabelItem10"; + this.simpleLabelItem10.Size = new System.Drawing.Size(98, 23); + this.simpleLabelItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem10.Text = "Cell V Gap [V]"; + this.simpleLabelItem10.TextSize = new System.Drawing.Size(82, 14); + // + // lbFwVer + // + this.lbFwVer.AllowHotTrack = false; + this.lbFwVer.AppearanceItemCaption.Options.UseTextOptions = true; + this.lbFwVer.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lbFwVer.Location = new System.Drawing.Point(150, 0); + this.lbFwVer.Name = "lbFwVer"; + this.lbFwVer.Size = new System.Drawing.Size(86, 23); + this.lbFwVer.Text = "FW Ver"; + this.lbFwVer.TextSize = new System.Drawing.Size(82, 14); + // + // ucModuleMainHeader + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.layoutControl1); + this.Margin = new System.Windows.Forms.Padding(0); + this.MinimumSize = new System.Drawing.Size(0, 30); + this.Name = "ucModuleMainHeader"; + this.Size = new System.Drawing.Size(888, 30); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbFwVer)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem1; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem2; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem4; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem3; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem5; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem6; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem7; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem8; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem9; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem10; + private DevExpress.XtraLayout.SimpleLabelItem lbFwVer; + } +} diff --git a/LFP_Manager/Controls/ucModuleMainHeader.cs b/LFP_Manager/Controls/ucModuleMainHeader.cs new file mode 100644 index 0000000..091b9e7 --- /dev/null +++ b/LFP_Manager/Controls/ucModuleMainHeader.cs @@ -0,0 +1,21 @@ +using DevExpress.XtraEditors; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace LFP_Manager.Controls +{ + public partial class ucModuleMainHeader : DevExpress.XtraEditors.XtraUserControl + { + public ucModuleMainHeader() + { + InitializeComponent(); + } + } +} diff --git a/LFP_Manager/Controls/ucModuleMainHeader.resx b/LFP_Manager/Controls/ucModuleMainHeader.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/LFP_Manager/Controls/ucModuleMainHeader.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LFP_Manager/Controls/ucParamSet.Designer.cs b/LFP_Manager/Controls/ucParamSet.Designer.cs new file mode 100644 index 0000000..451856a --- /dev/null +++ b/LFP_Manager/Controls/ucParamSet.Designer.cs @@ -0,0 +1,551 @@ +namespace LFP_Manager.Controls +{ + partial class ucParamSet + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오. + /// + private void InitializeComponent() + { + this.gbParamSet = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.edReleaseNew = new DevExpress.XtraEditors.TextEdit(); + this.edWarningNew = new DevExpress.XtraEditors.TextEdit(); + this.edTripNew = new DevExpress.XtraEditors.TextEdit(); + this.btnSet = new DevExpress.XtraEditors.SimpleButton(); + this.edRelease = new DevExpress.XtraEditors.TextEdit(); + this.edWarning = new DevExpress.XtraEditors.TextEdit(); + this.edTrip = new DevExpress.XtraEditors.TextEdit(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.lcTripParam = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcWarningParam = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcReleaseParam = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.lbTripUnit = new DevExpress.XtraLayout.SimpleLabelItem(); + this.lbWarningUnit = new DevExpress.XtraLayout.SimpleLabelItem(); + this.lbReleaseUnit = new DevExpress.XtraLayout.SimpleLabelItem(); + this.lcTripParamNew = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcReleaseParamNew = new DevExpress.XtraLayout.LayoutControlItem(); + this.lbCurr = new DevExpress.XtraLayout.SimpleLabelItem(); + this.lbNew = new DevExpress.XtraLayout.SimpleLabelItem(); + this.emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.emptySpaceItem4 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.lbFault = new DevExpress.XtraLayout.SimpleLabelItem(); + this.lbWarning = new DevExpress.XtraLayout.SimpleLabelItem(); + this.lbRelease = new DevExpress.XtraLayout.SimpleLabelItem(); + ((System.ComponentModel.ISupportInitialize)(this.gbParamSet)).BeginInit(); + this.gbParamSet.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.edReleaseNew.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.edWarningNew.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.edTripNew.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.edRelease.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.edWarning.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.edTrip.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcTripParam)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcWarningParam)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcReleaseParam)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbTripUnit)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbWarningUnit)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbReleaseUnit)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcTripParamNew)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcReleaseParamNew)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbCurr)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbNew)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbFault)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbWarning)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbRelease)).BeginInit(); + this.SuspendLayout(); + // + // gbParamSet + // + this.gbParamSet.Controls.Add(this.layoutControl1); + this.gbParamSet.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbParamSet.Location = new System.Drawing.Point(0, 0); + this.gbParamSet.Name = "gbParamSet"; + this.gbParamSet.Size = new System.Drawing.Size(219, 171); + this.gbParamSet.TabIndex = 0; + this.gbParamSet.Text = "groupControl1"; + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.edReleaseNew); + this.layoutControl1.Controls.Add(this.edWarningNew); + this.layoutControl1.Controls.Add(this.edTripNew); + this.layoutControl1.Controls.Add(this.btnSet); + this.layoutControl1.Controls.Add(this.edRelease); + this.layoutControl1.Controls.Add(this.edWarning); + this.layoutControl1.Controls.Add(this.edTrip); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(2, 23); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(870, 50, 372, 627); + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(215, 146); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // edReleaseNew + // + this.edReleaseNew.Location = new System.Drawing.Point(124, 79); + this.edReleaseNew.Name = "edReleaseNew"; + this.edReleaseNew.Properties.Appearance.Options.UseTextOptions = true; + this.edReleaseNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.edReleaseNew.Size = new System.Drawing.Size(56, 20); + this.edReleaseNew.StyleController = this.layoutControl1; + this.edReleaseNew.TabIndex = 11; + this.edReleaseNew.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.TextBox_KeyPress); + // + // edWarningNew + // + this.edWarningNew.Location = new System.Drawing.Point(124, 54); + this.edWarningNew.Name = "edWarningNew"; + this.edWarningNew.Properties.Appearance.Options.UseTextOptions = true; + this.edWarningNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.edWarningNew.Size = new System.Drawing.Size(56, 20); + this.edWarningNew.StyleController = this.layoutControl1; + this.edWarningNew.TabIndex = 10; + this.edWarningNew.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.TextBox_KeyPress); + // + // edTripNew + // + this.edTripNew.Location = new System.Drawing.Point(124, 29); + this.edTripNew.Name = "edTripNew"; + this.edTripNew.Properties.Appearance.Options.UseTextOptions = true; + this.edTripNew.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.edTripNew.Size = new System.Drawing.Size(56, 20); + this.edTripNew.StyleController = this.layoutControl1; + this.edTripNew.TabIndex = 9; + this.edTripNew.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.TextBox_KeyPress); + // + // btnSet + // + this.btnSet.Location = new System.Drawing.Point(135, 116); + this.btnSet.Name = "btnSet"; + this.btnSet.Size = new System.Drawing.Size(76, 26); + this.btnSet.StyleController = this.layoutControl1; + this.btnSet.TabIndex = 8; + this.btnSet.Text = "Set"; + this.btnSet.Click += new System.EventHandler(this.btnSet_Click); + // + // edRelease + // + this.edRelease.Location = new System.Drawing.Point(64, 79); + this.edRelease.Name = "edRelease"; + this.edRelease.Properties.Appearance.Options.UseTextOptions = true; + this.edRelease.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.edRelease.Properties.ReadOnly = true; + this.edRelease.Size = new System.Drawing.Size(56, 20); + this.edRelease.StyleController = this.layoutControl1; + this.edRelease.TabIndex = 6; + // + // edWarning + // + this.edWarning.Location = new System.Drawing.Point(64, 54); + this.edWarning.Name = "edWarning"; + this.edWarning.Properties.Appearance.Options.UseTextOptions = true; + this.edWarning.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.edWarning.Properties.ReadOnly = true; + this.edWarning.Size = new System.Drawing.Size(56, 20); + this.edWarning.StyleController = this.layoutControl1; + this.edWarning.TabIndex = 5; + // + // edTrip + // + this.edTrip.Location = new System.Drawing.Point(64, 29); + this.edTrip.Name = "edTrip"; + this.edTrip.Properties.Appearance.Options.UseTextOptions = true; + this.edTrip.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.edTrip.Properties.ReadOnly = true; + this.edTrip.Size = new System.Drawing.Size(56, 20); + this.edTrip.StyleController = this.layoutControl1; + this.edTrip.TabIndex = 4; + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "Root"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.lcTripParam, + this.lcWarningParam, + this.lcReleaseParam, + this.emptySpaceItem1, + this.layoutControlItem5, + this.emptySpaceItem2, + this.lbTripUnit, + this.lbWarningUnit, + this.lbReleaseUnit, + this.lcTripParamNew, + this.layoutControlItem2, + this.lcReleaseParamNew, + this.lbCurr, + this.lbNew, + this.emptySpaceItem3, + this.emptySpaceItem4, + this.lbFault, + this.lbWarning, + this.lbRelease}); + this.layoutControlGroup1.Name = "Root"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2); + this.layoutControlGroup1.Size = new System.Drawing.Size(215, 146); + this.layoutControlGroup1.TextVisible = false; + // + // lcTripParam + // + this.lcTripParam.Control = this.edTrip; + this.lcTripParam.CustomizationFormText = "Fault"; + this.lcTripParam.Location = new System.Drawing.Point(60, 25); + this.lcTripParam.MaxSize = new System.Drawing.Size(60, 25); + this.lcTripParam.MinSize = new System.Drawing.Size(60, 25); + this.lcTripParam.Name = "lcTripParam"; + this.lcTripParam.Size = new System.Drawing.Size(60, 25); + this.lcTripParam.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcTripParam.Text = "Fault"; + this.lcTripParam.TextSize = new System.Drawing.Size(0, 0); + this.lcTripParam.TextVisible = false; + // + // lcWarningParam + // + this.lcWarningParam.Control = this.edWarning; + this.lcWarningParam.CustomizationFormText = "Warning"; + this.lcWarningParam.Location = new System.Drawing.Point(60, 50); + this.lcWarningParam.MaxSize = new System.Drawing.Size(60, 25); + this.lcWarningParam.MinSize = new System.Drawing.Size(60, 25); + this.lcWarningParam.Name = "lcWarningParam"; + this.lcWarningParam.Size = new System.Drawing.Size(60, 25); + this.lcWarningParam.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcWarningParam.Text = "Warning"; + this.lcWarningParam.TextSize = new System.Drawing.Size(0, 0); + this.lcWarningParam.TextVisible = false; + // + // lcReleaseParam + // + this.lcReleaseParam.Control = this.edRelease; + this.lcReleaseParam.CustomizationFormText = "Release"; + this.lcReleaseParam.Location = new System.Drawing.Point(60, 75); + this.lcReleaseParam.MaxSize = new System.Drawing.Size(60, 25); + this.lcReleaseParam.MinSize = new System.Drawing.Size(60, 25); + this.lcReleaseParam.Name = "lcReleaseParam"; + this.lcReleaseParam.Size = new System.Drawing.Size(60, 25); + this.lcReleaseParam.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcReleaseParam.Text = "Release"; + this.lcReleaseParam.TextSize = new System.Drawing.Size(0, 0); + this.lcReleaseParam.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1"; + this.emptySpaceItem1.Location = new System.Drawing.Point(0, 100); + this.emptySpaceItem1.MinSize = new System.Drawing.Size(1, 1); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(211, 12); + this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem5 + // + this.layoutControlItem5.Control = this.btnSet; + this.layoutControlItem5.CustomizationFormText = "layoutControlItem5"; + this.layoutControlItem5.Location = new System.Drawing.Point(131, 112); + this.layoutControlItem5.MaxSize = new System.Drawing.Size(80, 30); + this.layoutControlItem5.MinSize = new System.Drawing.Size(80, 30); + this.layoutControlItem5.Name = "layoutControlItem5"; + this.layoutControlItem5.Size = new System.Drawing.Size(80, 30); + this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem5.TextVisible = false; + // + // emptySpaceItem2 + // + this.emptySpaceItem2.AllowHotTrack = false; + this.emptySpaceItem2.CustomizationFormText = "emptySpaceItem2"; + this.emptySpaceItem2.Location = new System.Drawing.Point(0, 112); + this.emptySpaceItem2.MinSize = new System.Drawing.Size(1, 1); + this.emptySpaceItem2.Name = "emptySpaceItem2"; + this.emptySpaceItem2.Size = new System.Drawing.Size(131, 30); + this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0); + // + // lbTripUnit + // + this.lbTripUnit.AllowHotTrack = false; + this.lbTripUnit.AppearanceItemCaption.Options.UseTextOptions = true; + this.lbTripUnit.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lbTripUnit.CustomizationFormText = "-"; + this.lbTripUnit.Location = new System.Drawing.Point(180, 25); + this.lbTripUnit.MaxSize = new System.Drawing.Size(31, 25); + this.lbTripUnit.MinSize = new System.Drawing.Size(31, 25); + this.lbTripUnit.Name = "lbTripUnit"; + this.lbTripUnit.Size = new System.Drawing.Size(31, 25); + this.lbTripUnit.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lbTripUnit.Text = "-"; + this.lbTripUnit.TextSize = new System.Drawing.Size(45, 14); + // + // lbWarningUnit + // + this.lbWarningUnit.AllowHotTrack = false; + this.lbWarningUnit.AppearanceItemCaption.Options.UseTextOptions = true; + this.lbWarningUnit.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lbWarningUnit.CustomizationFormText = "-"; + this.lbWarningUnit.Location = new System.Drawing.Point(180, 50); + this.lbWarningUnit.MaxSize = new System.Drawing.Size(31, 25); + this.lbWarningUnit.MinSize = new System.Drawing.Size(31, 25); + this.lbWarningUnit.Name = "lbWarningUnit"; + this.lbWarningUnit.Size = new System.Drawing.Size(31, 25); + this.lbWarningUnit.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lbWarningUnit.Text = "-"; + this.lbWarningUnit.TextSize = new System.Drawing.Size(45, 14); + // + // lbReleaseUnit + // + this.lbReleaseUnit.AllowHotTrack = false; + this.lbReleaseUnit.AppearanceItemCaption.Options.UseTextOptions = true; + this.lbReleaseUnit.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lbReleaseUnit.CustomizationFormText = "-"; + this.lbReleaseUnit.Location = new System.Drawing.Point(180, 75); + this.lbReleaseUnit.MaxSize = new System.Drawing.Size(31, 25); + this.lbReleaseUnit.MinSize = new System.Drawing.Size(31, 25); + this.lbReleaseUnit.Name = "lbReleaseUnit"; + this.lbReleaseUnit.Size = new System.Drawing.Size(31, 25); + this.lbReleaseUnit.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lbReleaseUnit.Text = "-"; + this.lbReleaseUnit.TextSize = new System.Drawing.Size(45, 14); + // + // lcTripParamNew + // + this.lcTripParamNew.Control = this.edTripNew; + this.lcTripParamNew.CustomizationFormText = "layoutControlItem1"; + this.lcTripParamNew.Location = new System.Drawing.Point(120, 25); + this.lcTripParamNew.MaxSize = new System.Drawing.Size(60, 25); + this.lcTripParamNew.MinSize = new System.Drawing.Size(60, 25); + this.lcTripParamNew.Name = "lcTripParamNew"; + this.lcTripParamNew.Size = new System.Drawing.Size(60, 25); + this.lcTripParamNew.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcTripParamNew.TextSize = new System.Drawing.Size(0, 0); + this.lcTripParamNew.TextVisible = false; + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.edWarningNew; + this.layoutControlItem2.CustomizationFormText = "layoutControlItem2"; + this.layoutControlItem2.Location = new System.Drawing.Point(120, 50); + this.layoutControlItem2.MaxSize = new System.Drawing.Size(60, 25); + this.layoutControlItem2.MinSize = new System.Drawing.Size(60, 25); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(60, 25); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // lcReleaseParamNew + // + this.lcReleaseParamNew.Control = this.edReleaseNew; + this.lcReleaseParamNew.CustomizationFormText = "layoutControlItem3"; + this.lcReleaseParamNew.Location = new System.Drawing.Point(120, 75); + this.lcReleaseParamNew.MaxSize = new System.Drawing.Size(60, 25); + this.lcReleaseParamNew.MinSize = new System.Drawing.Size(60, 25); + this.lcReleaseParamNew.Name = "lcReleaseParamNew"; + this.lcReleaseParamNew.Size = new System.Drawing.Size(60, 25); + this.lcReleaseParamNew.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcReleaseParamNew.TextSize = new System.Drawing.Size(0, 0); + this.lcReleaseParamNew.TextVisible = false; + // + // lbCurr + // + this.lbCurr.AllowHotTrack = false; + this.lbCurr.AppearanceItemCaption.Options.UseTextOptions = true; + this.lbCurr.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lbCurr.CustomizationFormText = "LabelsimpleLabelItem2"; + this.lbCurr.Location = new System.Drawing.Point(60, 0); + this.lbCurr.MaxSize = new System.Drawing.Size(60, 25); + this.lbCurr.MinSize = new System.Drawing.Size(60, 25); + this.lbCurr.Name = "lbCurr"; + this.lbCurr.Size = new System.Drawing.Size(60, 25); + this.lbCurr.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lbCurr.Text = "Current"; + this.lbCurr.TextSize = new System.Drawing.Size(45, 14); + // + // lbNew + // + this.lbNew.AllowHotTrack = false; + this.lbNew.AppearanceItemCaption.Options.UseTextOptions = true; + this.lbNew.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lbNew.CustomizationFormText = "LabelsimpleLabelItem1"; + this.lbNew.Location = new System.Drawing.Point(120, 0); + this.lbNew.MaxSize = new System.Drawing.Size(60, 25); + this.lbNew.MinSize = new System.Drawing.Size(60, 25); + this.lbNew.Name = "lbNew"; + this.lbNew.Size = new System.Drawing.Size(60, 25); + this.lbNew.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lbNew.Text = "New"; + this.lbNew.TextSize = new System.Drawing.Size(45, 14); + // + // emptySpaceItem3 + // + this.emptySpaceItem3.AllowHotTrack = false; + this.emptySpaceItem3.CustomizationFormText = "emptySpaceItem3"; + this.emptySpaceItem3.Location = new System.Drawing.Point(0, 0); + this.emptySpaceItem3.MaxSize = new System.Drawing.Size(60, 25); + this.emptySpaceItem3.MinSize = new System.Drawing.Size(60, 25); + this.emptySpaceItem3.Name = "emptySpaceItem3"; + this.emptySpaceItem3.Size = new System.Drawing.Size(60, 25); + this.emptySpaceItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem3.TextSize = new System.Drawing.Size(0, 0); + // + // emptySpaceItem4 + // + this.emptySpaceItem4.AllowHotTrack = false; + this.emptySpaceItem4.CustomizationFormText = "emptySpaceItem4"; + this.emptySpaceItem4.Location = new System.Drawing.Point(180, 0); + this.emptySpaceItem4.Name = "emptySpaceItem4"; + this.emptySpaceItem4.Size = new System.Drawing.Size(31, 25); + this.emptySpaceItem4.TextSize = new System.Drawing.Size(0, 0); + // + // lbFault + // + this.lbFault.AllowHotTrack = false; + this.lbFault.CustomizationFormText = "Fault"; + this.lbFault.Location = new System.Drawing.Point(0, 25); + this.lbFault.MaxSize = new System.Drawing.Size(60, 25); + this.lbFault.MinSize = new System.Drawing.Size(60, 25); + this.lbFault.Name = "lbFault"; + this.lbFault.Size = new System.Drawing.Size(60, 25); + this.lbFault.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lbFault.Text = "Fault"; + this.lbFault.TextSize = new System.Drawing.Size(45, 14); + // + // lbWarning + // + this.lbWarning.AllowHotTrack = false; + this.lbWarning.CustomizationFormText = "Warning"; + this.lbWarning.Location = new System.Drawing.Point(0, 50); + this.lbWarning.MaxSize = new System.Drawing.Size(60, 25); + this.lbWarning.MinSize = new System.Drawing.Size(60, 25); + this.lbWarning.Name = "lbWarning"; + this.lbWarning.Size = new System.Drawing.Size(60, 25); + this.lbWarning.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lbWarning.Text = "Warning"; + this.lbWarning.TextSize = new System.Drawing.Size(45, 14); + // + // lbRelease + // + this.lbRelease.AllowHotTrack = false; + this.lbRelease.CustomizationFormText = "Release"; + this.lbRelease.Location = new System.Drawing.Point(0, 75); + this.lbRelease.MaxSize = new System.Drawing.Size(60, 25); + this.lbRelease.MinSize = new System.Drawing.Size(60, 25); + this.lbRelease.Name = "lbRelease"; + this.lbRelease.Size = new System.Drawing.Size(60, 25); + this.lbRelease.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lbRelease.Text = "Release"; + this.lbRelease.TextSize = new System.Drawing.Size(45, 14); + // + // ucParamSet + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.gbParamSet); + this.Name = "ucParamSet"; + this.Size = new System.Drawing.Size(219, 171); + ((System.ComponentModel.ISupportInitialize)(this.gbParamSet)).EndInit(); + this.gbParamSet.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.edReleaseNew.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.edWarningNew.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.edTripNew.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.edRelease.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.edWarning.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.edTrip.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcTripParam)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcWarningParam)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcReleaseParam)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbTripUnit)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbWarningUnit)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbReleaseUnit)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcTripParamNew)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcReleaseParamNew)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbCurr)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbNew)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbFault)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbWarning)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbRelease)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraEditors.GroupControl gbParamSet; + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraEditors.TextEdit edRelease; + private DevExpress.XtraEditors.TextEdit edWarning; + private DevExpress.XtraEditors.TextEdit edTrip; + private DevExpress.XtraLayout.LayoutControlItem lcTripParam; + private DevExpress.XtraLayout.LayoutControlItem lcWarningParam; + private DevExpress.XtraLayout.LayoutControlItem lcReleaseParam; + private DevExpress.XtraEditors.SimpleButton btnSet; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2; + private DevExpress.XtraLayout.SimpleLabelItem lbTripUnit; + private DevExpress.XtraLayout.SimpleLabelItem lbWarningUnit; + private DevExpress.XtraLayout.SimpleLabelItem lbReleaseUnit; + private DevExpress.XtraEditors.TextEdit edReleaseNew; + private DevExpress.XtraEditors.TextEdit edWarningNew; + private DevExpress.XtraEditors.TextEdit edTripNew; + private DevExpress.XtraLayout.LayoutControlItem lcTripParamNew; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.LayoutControlItem lcReleaseParamNew; + private DevExpress.XtraLayout.SimpleLabelItem lbCurr; + private DevExpress.XtraLayout.SimpleLabelItem lbNew; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem4; + private DevExpress.XtraLayout.SimpleLabelItem lbFault; + private DevExpress.XtraLayout.SimpleLabelItem lbWarning; + private DevExpress.XtraLayout.SimpleLabelItem lbRelease; + + } +} diff --git a/LFP_Manager/Controls/ucParamSet.cs b/LFP_Manager/Controls/ucParamSet.cs new file mode 100644 index 0000000..0d450f3 --- /dev/null +++ b/LFP_Manager/Controls/ucParamSet.cs @@ -0,0 +1,289 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Utils; + +namespace LFP_Manager.Controls +{ + public delegate void setUpdate(object sender); + public delegate void setCommand(int mode, int flag, ParamData aParam); + + public struct ParamData + { + public short Fault; + public short Warning; + public short Release; + public short Time; + } + + public partial class ucParamSet : UserControl + { + #region VARIABLES + + int id = 0; + ParamData rParam; + ParamData wParam; + + public int wFlag = 0; + + public event setCommand OnCommand = null; + + #endregion + + #region CONSTRUCTORS + + public ucParamSet() + { + InitializeComponent(); + } + + #endregion + + #region EXT EVENT FUNCTION + + private void OnCommnadEvent(int mode, int flag, ParamData aParam) + { + OnCommand?.Invoke(mode, flag, aParam); + } + + #endregion + + #region BUTTON EVENT + + private void btnRead_Click(object sender, EventArgs e) + { + OnCommnadEvent(id, 0, rParam); + } + + private void btnSet_Click(object sender, EventArgs e) + { + if ((edTripNew.Text == "") || (edWarningNew.Text == "") || (edReleaseNew.Text == "")) + { + return; + } + wParam = rParam; + OnCommnadEvent(id, 1, MakeNewParam(id)); + } + + private ParamData MakeNewParam(int aId) + { + switch (aId) + { + case 0: // Cell Over Voltage + case 1: // Cell Under Voltage + wParam.Fault = Convert.ToInt16(edTripNew.Text); + wParam.Warning = Convert.ToInt16(edWarningNew.Text); + wParam.Release = Convert.ToInt16(edReleaseNew.Text); + break; + case 2: // System Over Voltage + case 3: // System Under Voltage + wParam.Fault = (short)(Convert.ToDouble(edTripNew.Text) * 10); + wParam.Warning = (short)(Convert.ToDouble(edWarningNew.Text) * 10); + wParam.Release = (short)(Convert.ToDouble(edReleaseNew.Text) * 10); + break; + case 4: // Charge High Temperature + case 5: // Charge Loq Temperature + case 6: // Discharge High Temperature + case 7: // Discharge Low Temperature + case 10: // Low SOC + case 11: // Low SOC + wParam.Fault = Convert.ToInt16(edTripNew.Text); + wParam.Warning = Convert.ToInt16(edWarningNew.Text); + wParam.Release = Convert.ToInt16(edReleaseNew.Text); + break; + case 8: // Charge Over Current + case 9: // Discharge Over Current + wParam.Fault = (short)(Convert.ToDouble(edTripNew.Text) * 10); + wParam.Warning = (short)(Convert.ToDouble(edWarningNew.Text) * 10); + wParam.Release = (short)(Convert.ToDouble(edReleaseNew.Text) * 1); + break; + } + return wParam; + } + + #endregion + + #region PUBLIC FUCTIONS + + public void SetId(int aId) + { + id = aId; + } + + public void UpdateData(ParamData aParam) + { + rParam = aParam; + DisplayParam(); + UpdateNewParam(); + } + + public void VisibleItem(int item, bool flag) + { + switch (item) + { + case 0: + lbFault.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; + lcTripParam.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; + lcTripParamNew.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; + lbTripUnit.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; + break; + case 1: + edWarning.Enabled = flag; + edWarningNew.Enabled = flag; + break; + case 2: + lbRelease.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; + lcReleaseParam.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; + lcReleaseParamNew.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; + lbReleaseUnit.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; + break; + } + } + + public void EnableItem(int item, bool flag) + { + switch (item) + { + case 0: + edTrip.Enabled = flag; + edTripNew.Enabled = flag; + break; + case 1: + edWarning.Enabled = flag; + edWarningNew.Enabled = flag; + break; + case 2: + edRelease.Enabled = flag; + edReleaseNew.Enabled = flag; + break; + } + } + + public void EnableDisableSetBtn(bool flag) + { + btnSet.Enabled = flag; + } + + public void SetParamName(int no, string nm) + { + switch (no) + { + case 0: + gbParamSet.Text = nm; + + if ((nm == "Charge Over Current") || (nm == "Discharge Over Current")) + { + lbFault.Text = "Fault 2"; + lbWarning.Text = "Fault 1"; + } + break; + case 1: + lbTripUnit.Text = nm; + lbWarningUnit.Text = nm; + if (nm == "A") + lbReleaseUnit.Text = "S"; + else + lbReleaseUnit.Text = nm; + break; + } + } + + #endregion + + #region DISPLAY + + private void DisplayParam() + { + ParamData Param = new ParamData(); + Param = rParam; + + switch (id) + { + case 0: + case 1: + edTrip.Text = String.Format("{0}", Param.Fault); + edWarning.Text = String.Format("{0}", Param.Warning); + edRelease.Text = String.Format("{0}", Param.Release); + break; + case 2: + case 3: + edTrip.Text = String.Format("{0:#0.0}", (float)Param.Fault / 10); + edWarning.Text = String.Format("{0:#0.0}", (float)Param.Warning / 10); + edRelease.Text = String.Format("{0:#0.0}", (float)Param.Release / 10); + break; + case 4: + case 5: + case 6: + case 7: + case 10: + case 11: + edTrip.Text = String.Format("{0}", Param.Fault); + edWarning.Text = String.Format("{0}", Param.Warning); + edRelease.Text = String.Format("{0}", Param.Release); + break; + case 8: // Charge Over Current + case 9: // Discharge Over Current + edTrip.Text = String.Format("{0:#0.0}", (float)Param.Fault / 10); + edWarning.Text = String.Format("{0:#0.0}", (float)Param.Warning / 10); + edRelease.Text = String.Format("{0}", (float)Param.Release / 1); + break; + } + } + + private void UpdateNewParam() + { + if (wFlag == 0) + { + ParamData Param = rParam; + + switch (id) + { + case 0: + case 1: + edTripNew.Text = String.Format("{0}", Param.Fault); + edWarningNew.Text = String.Format("{0}", Param.Warning); + edReleaseNew.Text = String.Format("{0}", Param.Release); + break; + case 2: + case 3: + edTripNew.Text = String.Format("{0:#0.0}", (float)Param.Fault / 10); + edWarningNew.Text = String.Format("{0:#0.0}", (float)Param.Warning / 10); + edReleaseNew.Text = String.Format("{0:#0.0}", (float)Param.Release / 10); + break; + case 4: + case 5: + case 6: + case 7: + case 10: + case 11: + edTripNew.Text = String.Format("{0}", Param.Fault); + edWarningNew.Text = String.Format("{0}", Param.Warning); + edReleaseNew.Text = String.Format("{0}", Param.Release); + break; + case 8: + case 9: + edTripNew.Text = String.Format("{0:#0.0}", (float)Param.Fault / 10); + edWarningNew.Text = String.Format("{0:#0.0}", (float)Param.Warning / 10); + edReleaseNew.Text = String.Format("{0}", (float)Param.Release / 1); + break; + } + wFlag = 1; + } + } + + #endregion + + private void TextBox_KeyPress(object sender, KeyPressEventArgs e) + { + //csUtils.TypingOnlyNumber(sender, e, true, true); + } + } +} diff --git a/LFP_Manager/Controls/ucParamSet.resx b/LFP_Manager/Controls/ucParamSet.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/LFP_Manager/Controls/ucParamSet.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LFP_Manager/Controls/ucSerialProcess.Designer.cs b/LFP_Manager/Controls/ucSerialProcess.Designer.cs new file mode 100644 index 0000000..331adc0 --- /dev/null +++ b/LFP_Manager/Controls/ucSerialProcess.Designer.cs @@ -0,0 +1,37 @@ +namespace LFP_Manager.Controls +{ + partial class ucSerialProcess + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + } + + #endregion + } +} diff --git a/LFP_Manager/Controls/ucSerialProcess.cs b/LFP_Manager/Controls/ucSerialProcess.cs new file mode 100644 index 0000000..a4ec1be --- /dev/null +++ b/LFP_Manager/Controls/ucSerialProcess.cs @@ -0,0 +1,283 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Linq; +using System.Windows.Forms; +using DevExpress.XtraEditors; + +using System.Threading; +using System.IO.Ports; + +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Utils; + +namespace LFP_Manager.Controls +{ + public delegate void DataUpdate(object sender, DeviceSystemData[] aSystemData); + + public partial class ucSerialProcess : DevExpress.XtraEditors.XtraUserControl + { + #region VARIABLES + + DeviceSystemData[] SystemData; + + //Thread serialComm = null; + SerialPort sPort = null; + //string CommPort = null; + + bool SerialPortThreadEnd = false; + + public event DataUpdate OnUpdate = null; + + #endregion + + #region CONSTRUCTORS + + public ucSerialProcess(DeviceSystemData[] aSystemData) + { + InitializeComponent(); + + SystemData = aSystemData; + } + + #endregion + + #region COMMPORT CONTROLS + + private bool Open(string cPort, int cBaudrate) + { + bool result = false; + + sPort = new SerialPort(); + sPort.PortName = cPort; + sPort.BaudRate = cBaudrate; + + try + { + sPort.Open(); + + result = true; + } + catch (Exception) + { + } + + return result; + } + + private void Close() + { + if (sPort != null) + { + if (sPort.IsOpen) + { + sPort.Close(); + } + sPort = null; + } + } + + #endregion + + #region Serial Comm Thread + + ushort RequestRegAddr = 0x0000; + ushort RequestRegLen = 50; + int SS, bakSS; + + private int SerialTxProcess() + { + byte[] sData; + + SS = DateTime.Now.Second; + + if ((SS == 58) && (bakSS != SS)) + { + // Write + RequestRegAddr = 19; + RequestRegLen = 5; + sData = csSerialCommFunction.MakeWriteRegisterData(0xFF, RequestRegAddr, RequestRegLen); + sPort.Write(sData, 0, sData.Length); + bakSS = SS; + + return 0; + } + else + { + // Read + RequestRegAddr = 0x0000; + RequestRegLen = 50; + sData = csSerialCommFunction.MakeReadRegisterData(0x01, RequestRegAddr, RequestRegLen); + sPort.Write(sData, 0, sData.Length); + bakSS = SS; + + return 1; + } + } + + #region Serial Buffering + + private void PutBuff(byte c) + { + rBuffer[rBufStart++] = c; + rBufStart %= BUFFER_SIZE; + + if (rBufStart == rBufEnd) + { + rBufEnd++; + rBufEnd %= BUFFER_SIZE; + } + } + + private int GetBuff() + { + int result = 0; + + if (rBufStart != rBufEnd) + { + result = 0x0100 + rBuffer[rBufEnd++]; + rBufEnd %= BUFFER_SIZE; + } + return result; + } + + #endregion + + const int BUFFER_SIZE = 512; + + byte[] rBuffer = new byte[BUFFER_SIZE]; + int rBufStart = 0; + int rBufEnd = 0; + + byte[] ReadBuf = new byte[BUFFER_SIZE]; + ushort rPosition = 0; + bool Commfail = true; + bool disCommfail = false; + + ushort BTCU_ID = 1; + + private void serialRecvThread() + { + int getData = 0; + byte cData = 0; + bool BuffStart = false; + int TimeOutCount = 0; + + while (SerialPortThreadEnd == false) + { +StartSend: + if (sPort.IsOpen) + { + if (SerialTxProcess() == 1) + { + int rTimeOut = 100; + + BuffStart = false; + rPosition = 0; + + while (rTimeOut > 0) + { + if (((getData = GetBuff()) & 0x0100) != 0x0000) + { + rTimeOut = 100; + TimeOutCount = 0; + + cData = (byte)(getData & 0x00FF); + + if (rPosition >= BUFFER_SIZE) + { + BuffStart = false; + rPosition = 0; + } + + if (BuffStart == false) + { + rPosition = 0; + if (cData == 0x01) + { + ReadBuf[rPosition++] = cData; + BuffStart = true; + } + } + else + { + ReadBuf[rPosition++] = cData; + + switch (csSerialCommFunction.ModbusPacketFromSlaveCheck(ReadBuf, rPosition)) + { + case 0: // Need more data + break; + case 1: // Packet OK, no error + byte[] cdata = csUtils.StrToByteArray(ReadBuf, 0, rPosition - 2); + + Commfail = false; + SystemData[0] = csSerialCommFunction.SerialRxProcess(ReadBuf, RequestRegAddr, rPosition, SystemData[0]); + + if (OnUpdate != null) + { + OnUpdate(this, SystemData); + } + + Thread.Sleep(100); + + goto StartSend; + case -1: // Packet error + rPosition = 0; + BuffStart = false; + + Thread.Sleep(100); + + goto StartSend; + default: + break; + } + } + } + else + { + Thread.Sleep(1); + if (rTimeOut > 0) rTimeOut--; + } + } + + if (rPosition > 0) + { + Thread.Sleep(100); + } + else + { + TimeOutCount++; + if (TimeOutCount >= 5) + { + TimeOutCount = 5; + Commfail = true; + } + //if (Commfail == true) + //{ + // BTCU_ID++; + // BTCU_ID %= 31; + // if (BTCU_ID == 0) BTCU_ID = 1; + //} + Thread.Sleep(100); + } + } + else + { + Thread.Sleep(100); + } + rPosition = 0; + } + else + { + Thread.Sleep(500); + } + } + } + + #endregion + } +} diff --git a/LFP_Manager/Controls/ucShelfStatus.Designer.cs b/LFP_Manager/Controls/ucShelfStatus.Designer.cs new file mode 100644 index 0000000..1a36f8a --- /dev/null +++ b/LFP_Manager/Controls/ucShelfStatus.Designer.cs @@ -0,0 +1,1375 @@ +namespace LFP_Manager.Controls +{ + partial class ucShelfStatus + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + DevExpress.XtraCharts.XYDiagram xyDiagram1 = new DevExpress.XtraCharts.XYDiagram(); + DevExpress.XtraCharts.Series series1 = new DevExpress.XtraCharts.Series(); + DevExpress.XtraCharts.Series series2 = new DevExpress.XtraCharts.Series(); + DevExpress.XtraCharts.XYDiagram xyDiagram2 = new DevExpress.XtraCharts.XYDiagram(); + DevExpress.XtraCharts.Series series3 = new DevExpress.XtraCharts.Series(); + DevExpress.XtraCharts.Series series4 = new DevExpress.XtraCharts.Series(); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.pictureEdit1 = new DevExpress.XtraEditors.PictureEdit(); + this.btnCalib = new DevExpress.XtraEditors.SimpleButton(); + this.gbEtc = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl6 = new DevExpress.XtraLayout.LayoutControl(); + this.lbAmbTemp = new DevExpress.XtraEditors.LabelControl(); + this.lbFetTemp = new DevExpress.XtraEditors.LabelControl(); + this.layoutControlGroup6 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem22 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem23 = new DevExpress.XtraLayout.LayoutControlItem(); + this.btnParam = new DevExpress.XtraEditors.SimpleButton(); + this.gbAlarm = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl5 = new DevExpress.XtraLayout.LayoutControl(); + this.layoutControlGroup5 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.gbStatusAlarm = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl(); + this.panelControl2 = new DevExpress.XtraEditors.PanelControl(); + this.lbAlarm = new DevExpress.XtraEditors.LabelControl(); + this.panelControl1 = new DevExpress.XtraEditors.PanelControl(); + this.lbStatus = new DevExpress.XtraEditors.LabelControl(); + this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.lcitemStatus = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcitemAlarm = new DevExpress.XtraLayout.LayoutControlItem(); + this.gbDetail = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl4 = new DevExpress.XtraLayout.LayoutControl(); + this.TChart = new DevExpress.XtraCharts.ChartControl(); + this.VChart = new DevExpress.XtraCharts.ChartControl(); + this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem(); + this.gbValue = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl(); + this.gaugeControl5 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.digitalBackgroundLayerComponent5 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.gaugeControl4 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.digitalBackgroundLayerComponent4 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.gaugeControl3 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.digitalBackgroundLayerComponent3 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.gaugeControl2 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.digitalBackgroundLayerComponent2 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.gaugeControl1 = new DevExpress.XtraGauges.Win.GaugeControl(); + this.digitalBackgroundLayerComponent1 = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent(); + this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem24 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.lcitemValue = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem(); + this.icitemStatusAlarm = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem19 = new DevExpress.XtraLayout.LayoutControlItem(); + this.lbHeatbeat = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlItem21 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem20 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlGroup7 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem25 = new DevExpress.XtraLayout.LayoutControlItem(); + this.tmrDisplay = new System.Windows.Forms.Timer(this.components); + this.ucCvDiff = new LFP_Manager.Controls.ucStatus(); + this.ucLowSOC = new LFP_Manager.Controls.ucStatus(); + this.ucDchOverCurr = new LFP_Manager.Controls.ucStatus(); + this.ucChaOverCurr = new LFP_Manager.Controls.ucStatus(); + this.ucUnderVolt = new LFP_Manager.Controls.ucStatus(); + this.ucOverVolt = new LFP_Manager.Controls.ucStatus(); + this.ucCellUnderVolt = new LFP_Manager.Controls.ucStatus(); + this.ucCellOverVolt = new LFP_Manager.Controls.ucStatus(); + this.ucLowTemp = new LFP_Manager.Controls.ucStatus(); + this.ucHighTemp = new LFP_Manager.Controls.ucStatus(); + this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem15 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem16 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem17 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem18 = new DevExpress.XtraLayout.LayoutControlItem(); + this.dgSOH = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.dgTemperature = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.dgSOC = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.dgCurrent = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + this.dgVoltage = new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureEdit1.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbEtc)).BeginInit(); + this.gbEtc.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl6)).BeginInit(); + this.layoutControl6.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbAlarm)).BeginInit(); + this.gbAlarm.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl5)).BeginInit(); + this.layoutControl5.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbStatusAlarm)).BeginInit(); + this.gbStatusAlarm.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit(); + this.layoutControl3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.panelControl2)).BeginInit(); + this.panelControl2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.panelControl1)).BeginInit(); + this.panelControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemStatus)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemAlarm)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbDetail)).BeginInit(); + this.gbDetail.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).BeginInit(); + this.layoutControl4.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.TChart)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(xyDiagram1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(series1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(series2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.VChart)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(xyDiagram2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(series3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(series4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbValue)).BeginInit(); + this.gbValue.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit(); + this.layoutControl2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem24)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemValue)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.icitemStatusAlarm)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbHeatbeat)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem21)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem25)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgSOH)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgTemperature)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgSOC)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgCurrent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgVoltage)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.AllowCustomization = false; + this.layoutControl1.Controls.Add(this.pictureEdit1); + this.layoutControl1.Controls.Add(this.btnCalib); + this.layoutControl1.Controls.Add(this.gbEtc); + this.layoutControl1.Controls.Add(this.btnParam); + this.layoutControl1.Controls.Add(this.gbAlarm); + this.layoutControl1.Controls.Add(this.gbStatusAlarm); + this.layoutControl1.Controls.Add(this.gbDetail); + this.layoutControl1.Controls.Add(this.gbValue); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1192, 311, 692, 350); + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(948, 572); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // pictureEdit1 + // + this.pictureEdit1.EditValue = global::LFP_Manager.Properties.Resources.Delta_Logo_Small_250522; + this.pictureEdit1.Location = new System.Drawing.Point(806, 30); + this.pictureEdit1.Name = "pictureEdit1"; + this.pictureEdit1.Properties.ReadOnly = true; + this.pictureEdit1.Properties.ShowCameraMenuItem = DevExpress.XtraEditors.Controls.CameraMenuItemVisibility.Auto; + this.pictureEdit1.Properties.ShowMenu = false; + this.pictureEdit1.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Stretch; + this.pictureEdit1.Size = new System.Drawing.Size(133, 87); + this.pictureEdit1.StyleController = this.layoutControl1; + this.pictureEdit1.TabIndex = 14; + // + // btnCalib + // + this.btnCalib.Location = new System.Drawing.Point(856, 187); + this.btnCalib.Name = "btnCalib"; + this.btnCalib.Size = new System.Drawing.Size(89, 29); + this.btnCalib.StyleController = this.layoutControl1; + this.btnCalib.TabIndex = 11; + this.btnCalib.Text = "Calib"; + this.btnCalib.Click += new System.EventHandler(this.btnCalibration_Click); + // + // gbEtc + // + this.gbEtc.Controls.Add(this.layoutControl6); + this.gbEtc.Location = new System.Drawing.Point(751, 127); + this.gbEtc.Name = "gbEtc"; + this.gbEtc.Size = new System.Drawing.Size(101, 89); + this.gbEtc.TabIndex = 10; + this.gbEtc.Text = "BMS-Temp"; + // + // layoutControl6 + // + this.layoutControl6.AllowCustomization = false; + this.layoutControl6.Controls.Add(this.lbAmbTemp); + this.layoutControl6.Controls.Add(this.lbFetTemp); + this.layoutControl6.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl6.Location = new System.Drawing.Point(2, 23); + this.layoutControl6.Name = "layoutControl6"; + this.layoutControl6.Root = this.layoutControlGroup6; + this.layoutControl6.Size = new System.Drawing.Size(97, 64); + this.layoutControl6.TabIndex = 0; + this.layoutControl6.Text = "layoutControl6"; + // + // lbAmbTemp + // + this.lbAmbTemp.Location = new System.Drawing.Point(4, 33); + this.lbAmbTemp.Name = "lbAmbTemp"; + this.lbAmbTemp.Size = new System.Drawing.Size(89, 27); + this.lbAmbTemp.StyleController = this.layoutControl6; + this.lbAmbTemp.TabIndex = 5; + // + // lbFetTemp + // + this.lbFetTemp.Location = new System.Drawing.Point(4, 4); + this.lbFetTemp.Name = "lbFetTemp"; + this.lbFetTemp.Size = new System.Drawing.Size(89, 25); + this.lbFetTemp.StyleController = this.layoutControl6; + this.lbFetTemp.TabIndex = 4; + this.lbFetTemp.Text = " CPU: 0C"; + // + // layoutControlGroup6 + // + this.layoutControlGroup6.CustomizationFormText = "layoutControlGroup6"; + this.layoutControlGroup6.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup6.GroupBordersVisible = false; + this.layoutControlGroup6.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem22, + this.layoutControlItem23}); + this.layoutControlGroup6.Name = "layoutControlGroup6"; + this.layoutControlGroup6.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2); + this.layoutControlGroup6.Size = new System.Drawing.Size(97, 64); + this.layoutControlGroup6.TextVisible = false; + // + // layoutControlItem22 + // + this.layoutControlItem22.Control = this.lbFetTemp; + this.layoutControlItem22.CustomizationFormText = "layoutControlItem22"; + this.layoutControlItem22.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem22.MinSize = new System.Drawing.Size(74, 18); + this.layoutControlItem22.Name = "layoutControlItem22"; + this.layoutControlItem22.Size = new System.Drawing.Size(93, 29); + this.layoutControlItem22.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem22.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem22.TextVisible = false; + // + // layoutControlItem23 + // + this.layoutControlItem23.Control = this.lbAmbTemp; + this.layoutControlItem23.CustomizationFormText = "layoutControlItem23"; + this.layoutControlItem23.Location = new System.Drawing.Point(0, 29); + this.layoutControlItem23.MinSize = new System.Drawing.Size(74, 18); + this.layoutControlItem23.Name = "layoutControlItem23"; + this.layoutControlItem23.Size = new System.Drawing.Size(93, 31); + this.layoutControlItem23.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem23.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem23.TextVisible = false; + // + // btnParam + // + this.btnParam.Location = new System.Drawing.Point(856, 152); + this.btnParam.Name = "btnParam"; + this.btnParam.Size = new System.Drawing.Size(89, 31); + this.btnParam.StyleController = this.layoutControl1; + this.btnParam.TabIndex = 8; + this.btnParam.Text = "Param"; + this.btnParam.Click += new System.EventHandler(this.btnParam_Click); + // + // gbAlarm + // + this.gbAlarm.Controls.Add(this.layoutControl5); + this.gbAlarm.Location = new System.Drawing.Point(173, 127); + this.gbAlarm.Name = "gbAlarm"; + this.gbAlarm.Size = new System.Drawing.Size(574, 89); + this.gbAlarm.TabIndex = 7; + this.gbAlarm.Text = "Alarm && Fault"; + // + // layoutControl5 + // + this.layoutControl5.AllowCustomization = false; + this.layoutControl5.Controls.Add(this.ucCvDiff); + this.layoutControl5.Controls.Add(this.ucLowSOC); + this.layoutControl5.Controls.Add(this.ucDchOverCurr); + this.layoutControl5.Controls.Add(this.ucChaOverCurr); + this.layoutControl5.Controls.Add(this.ucUnderVolt); + this.layoutControl5.Controls.Add(this.ucOverVolt); + this.layoutControl5.Controls.Add(this.ucCellUnderVolt); + this.layoutControl5.Controls.Add(this.ucCellOverVolt); + this.layoutControl5.Controls.Add(this.ucLowTemp); + this.layoutControl5.Controls.Add(this.ucHighTemp); + this.layoutControl5.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl5.Location = new System.Drawing.Point(2, 23); + this.layoutControl5.Name = "layoutControl5"; + this.layoutControl5.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1131, 383, 250, 350); + this.layoutControl5.Root = this.layoutControlGroup5; + this.layoutControl5.Size = new System.Drawing.Size(570, 64); + this.layoutControl5.TabIndex = 0; + this.layoutControl5.Text = "layoutControl5"; + // + // layoutControlGroup5 + // + this.layoutControlGroup5.CustomizationFormText = "layoutControlGroup5"; + this.layoutControlGroup5.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup5.GroupBordersVisible = false; + this.layoutControlGroup5.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem9, + this.layoutControlItem10, + this.layoutControlItem11, + this.layoutControlItem12, + this.layoutControlItem13, + this.layoutControlItem14, + this.layoutControlItem15, + this.layoutControlItem16, + this.layoutControlItem17, + this.layoutControlItem18}); + this.layoutControlGroup5.Name = "layoutControlGroup5"; + this.layoutControlGroup5.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + this.layoutControlGroup5.Size = new System.Drawing.Size(570, 64); + this.layoutControlGroup5.TextVisible = false; + // + // gbStatusAlarm + // + this.gbStatusAlarm.Controls.Add(this.layoutControl3); + this.gbStatusAlarm.Location = new System.Drawing.Point(3, 127); + this.gbStatusAlarm.Name = "gbStatusAlarm"; + this.gbStatusAlarm.Size = new System.Drawing.Size(166, 89); + this.gbStatusAlarm.TabIndex = 6; + this.gbStatusAlarm.Text = "Operating Status"; + // + // layoutControl3 + // + this.layoutControl3.AllowCustomization = false; + this.layoutControl3.Controls.Add(this.panelControl2); + this.layoutControl3.Controls.Add(this.panelControl1); + this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl3.Location = new System.Drawing.Point(2, 23); + this.layoutControl3.Name = "layoutControl3"; + this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1163, 334, 250, 350); + this.layoutControl3.Root = this.layoutControlGroup3; + this.layoutControl3.Size = new System.Drawing.Size(162, 64); + this.layoutControl3.TabIndex = 0; + this.layoutControl3.Text = "layoutControl3"; + // + // panelControl2 + // + this.panelControl2.Controls.Add(this.lbAlarm); + this.panelControl2.Location = new System.Drawing.Point(44, 34); + this.panelControl2.Name = "panelControl2"; + this.panelControl2.Size = new System.Drawing.Size(115, 27); + this.panelControl2.TabIndex = 5; + // + // lbAlarm + // + this.lbAlarm.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbAlarm.Appearance.Options.UseFont = true; + this.lbAlarm.Appearance.Options.UseTextOptions = true; + this.lbAlarm.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lbAlarm.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None; + this.lbAlarm.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbAlarm.Location = new System.Drawing.Point(2, 2); + this.lbAlarm.Name = "lbAlarm"; + this.lbAlarm.Size = new System.Drawing.Size(111, 23); + this.lbAlarm.TabIndex = 0; + this.lbAlarm.Text = "Alarm"; + // + // panelControl1 + // + this.panelControl1.Controls.Add(this.lbStatus); + this.panelControl1.Location = new System.Drawing.Point(44, 3); + this.panelControl1.Name = "panelControl1"; + this.panelControl1.Size = new System.Drawing.Size(115, 27); + this.panelControl1.TabIndex = 4; + // + // lbStatus + // + this.lbStatus.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbStatus.Appearance.Options.UseFont = true; + this.lbStatus.Appearance.Options.UseTextOptions = true; + this.lbStatus.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lbStatus.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None; + this.lbStatus.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbStatus.Location = new System.Drawing.Point(2, 2); + this.lbStatus.Name = "lbStatus"; + this.lbStatus.Size = new System.Drawing.Size(111, 23); + this.lbStatus.TabIndex = 0; + this.lbStatus.Text = "Status"; + // + // layoutControlGroup3 + // + this.layoutControlGroup3.CustomizationFormText = "layoutControlGroup3"; + this.layoutControlGroup3.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup3.GroupBordersVisible = false; + this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.lcitemStatus, + this.lcitemAlarm}); + this.layoutControlGroup3.Name = "layoutControlGroup3"; + this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup3.Size = new System.Drawing.Size(162, 64); + this.layoutControlGroup3.TextVisible = false; + // + // lcitemStatus + // + this.lcitemStatus.AppearanceItemCaption.Options.UseTextOptions = true; + this.lcitemStatus.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lcitemStatus.Control = this.panelControl1; + this.lcitemStatus.CustomizationFormText = "Status"; + this.lcitemStatus.Location = new System.Drawing.Point(0, 0); + this.lcitemStatus.MaxSize = new System.Drawing.Size(0, 31); + this.lcitemStatus.MinSize = new System.Drawing.Size(100, 31); + this.lcitemStatus.Name = "lcitemStatus"; + this.lcitemStatus.Size = new System.Drawing.Size(160, 31); + this.lcitemStatus.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemStatus.Text = "Status"; + this.lcitemStatus.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.lcitemStatus.TextSize = new System.Drawing.Size(40, 14); + this.lcitemStatus.TextToControlDistance = 1; + // + // lcitemAlarm + // + this.lcitemAlarm.AppearanceItemCaption.Options.UseTextOptions = true; + this.lcitemAlarm.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lcitemAlarm.Control = this.panelControl2; + this.lcitemAlarm.CustomizationFormText = "Alarm"; + this.lcitemAlarm.Location = new System.Drawing.Point(0, 31); + this.lcitemAlarm.MinSize = new System.Drawing.Size(100, 24); + this.lcitemAlarm.Name = "lcitemAlarm"; + this.lcitemAlarm.Size = new System.Drawing.Size(160, 31); + this.lcitemAlarm.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemAlarm.Text = "Alarm"; + this.lcitemAlarm.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.lcitemAlarm.TextSize = new System.Drawing.Size(40, 20); + this.lcitemAlarm.TextToControlDistance = 1; + // + // gbDetail + // + this.gbDetail.Controls.Add(this.layoutControl4); + this.gbDetail.Location = new System.Drawing.Point(3, 220); + this.gbDetail.Name = "gbDetail"; + this.gbDetail.Size = new System.Drawing.Size(942, 349); + this.gbDetail.TabIndex = 5; + this.gbDetail.Text = "Detail Status"; + // + // layoutControl4 + // + this.layoutControl4.AllowCustomization = false; + this.layoutControl4.Controls.Add(this.TChart); + this.layoutControl4.Controls.Add(this.VChart); + this.layoutControl4.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl4.Location = new System.Drawing.Point(2, 23); + this.layoutControl4.Name = "layoutControl4"; + this.layoutControl4.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1246, 275, 650, 400); + this.layoutControl4.Root = this.layoutControlGroup4; + this.layoutControl4.Size = new System.Drawing.Size(938, 324); + this.layoutControl4.TabIndex = 0; + this.layoutControl4.Text = "layoutControl4"; + // + // TChart + // + xyDiagram1.AxisX.VisibleInPanesSerializable = "-1"; + xyDiagram1.AxisY.VisibleInPanesSerializable = "-1"; + xyDiagram1.DefaultPane.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(242)))), ((int)(((byte)(242)))), ((int)(((byte)(242))))); + this.TChart.Diagram = xyDiagram1; + this.TChart.Legend.Name = "Default Legend"; + this.TChart.Location = new System.Drawing.Point(687, 20); + this.TChart.Name = "TChart"; + series1.Name = "Series 1"; + series2.Name = "Series 2"; + this.TChart.SeriesSerializable = new DevExpress.XtraCharts.Series[] { + series1, + series2}; + this.TChart.Size = new System.Drawing.Size(248, 301); + this.TChart.TabIndex = 7; + // + // VChart + // + xyDiagram2.AxisX.VisibleInPanesSerializable = "-1"; + xyDiagram2.AxisY.MinorCount = 1; + xyDiagram2.AxisY.NumericScaleOptions.AutoGrid = false; + xyDiagram2.AxisY.NumericScaleOptions.GridSpacing = 0.1D; + xyDiagram2.AxisY.VisibleInPanesSerializable = "-1"; + xyDiagram2.AxisY.VisualRange.Auto = false; + xyDiagram2.AxisY.VisualRange.AutoSideMargins = false; + xyDiagram2.AxisY.VisualRange.EndSideMargin = 0D; + xyDiagram2.AxisY.VisualRange.MaxValueSerializable = "4"; + xyDiagram2.AxisY.VisualRange.MinValueSerializable = "2"; + xyDiagram2.AxisY.VisualRange.StartSideMargin = 0D; + xyDiagram2.DefaultPane.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(242)))), ((int)(((byte)(242)))), ((int)(((byte)(242))))); + this.VChart.Diagram = xyDiagram2; + this.VChart.Legend.Name = "Default Legend"; + this.VChart.Location = new System.Drawing.Point(3, 20); + this.VChart.Name = "VChart"; + series3.Name = "Series 1"; + series4.Name = "Series 2"; + this.VChart.SeriesSerializable = new DevExpress.XtraCharts.Series[] { + series3, + series4}; + this.VChart.Size = new System.Drawing.Size(680, 301); + this.VChart.TabIndex = 6; + // + // layoutControlGroup4 + // + this.layoutControlGroup4.CustomizationFormText = "layoutControlGroup4"; + this.layoutControlGroup4.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup4.GroupBordersVisible = false; + this.layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem1, + this.layoutControlItem7}); + this.layoutControlGroup4.Name = "Root"; + this.layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup4.Size = new System.Drawing.Size(938, 324); + this.layoutControlGroup4.TextVisible = false; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.VChart; + this.layoutControlItem1.CustomizationFormText = "Cell Voltage"; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(684, 322); + this.layoutControlItem1.Text = "Cell Voltage"; + this.layoutControlItem1.TextLocation = DevExpress.Utils.Locations.Top; + this.layoutControlItem1.TextSize = new System.Drawing.Size(94, 14); + // + // layoutControlItem7 + // + this.layoutControlItem7.Control = this.TChart; + this.layoutControlItem7.Location = new System.Drawing.Point(684, 0); + this.layoutControlItem7.Name = "layoutControlItem7"; + this.layoutControlItem7.Size = new System.Drawing.Size(252, 322); + this.layoutControlItem7.Text = "Cell Temperature"; + this.layoutControlItem7.TextLocation = DevExpress.Utils.Locations.Top; + this.layoutControlItem7.TextSize = new System.Drawing.Size(94, 14); + // + // gbValue + // + this.gbValue.Controls.Add(this.layoutControl2); + this.gbValue.Location = new System.Drawing.Point(3, 3); + this.gbValue.Name = "gbValue"; + this.gbValue.Size = new System.Drawing.Size(793, 120); + this.gbValue.TabIndex = 4; + this.gbValue.Text = "Value"; + // + // layoutControl2 + // + this.layoutControl2.AllowCustomization = false; + this.layoutControl2.Controls.Add(this.gaugeControl5); + this.layoutControl2.Controls.Add(this.gaugeControl4); + this.layoutControl2.Controls.Add(this.gaugeControl3); + this.layoutControl2.Controls.Add(this.gaugeControl2); + this.layoutControl2.Controls.Add(this.gaugeControl1); + this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl2.Location = new System.Drawing.Point(2, 23); + this.layoutControl2.Name = "layoutControl2"; + this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1123, 466, 650, 400); + this.layoutControl2.Root = this.layoutControlGroup2; + this.layoutControl2.Size = new System.Drawing.Size(789, 95); + this.layoutControl2.TabIndex = 0; + this.layoutControl2.Text = "layoutControl2"; + // + // gaugeControl5 + // + this.gaugeControl5.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.dgSOH}); + this.gaugeControl5.Location = new System.Drawing.Point(475, 20); + this.gaugeControl5.Name = "gaugeControl5"; + this.gaugeControl5.Size = new System.Drawing.Size(153, 72); + this.gaugeControl5.TabIndex = 8; + // + // digitalBackgroundLayerComponent5 + // + this.digitalBackgroundLayerComponent5.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F); + this.digitalBackgroundLayerComponent5.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent5.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent5.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent5.ZOrder = 1000; + // + // gaugeControl4 + // + this.gaugeControl4.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.dgTemperature}); + this.gaugeControl4.Location = new System.Drawing.Point(632, 20); + this.gaugeControl4.Name = "gaugeControl4"; + this.gaugeControl4.Size = new System.Drawing.Size(154, 72); + this.gaugeControl4.TabIndex = 7; + // + // digitalBackgroundLayerComponent4 + // + this.digitalBackgroundLayerComponent4.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F); + this.digitalBackgroundLayerComponent4.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent4.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent4.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent4.ZOrder = 1000; + // + // gaugeControl3 + // + this.gaugeControl3.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.dgSOC}); + this.gaugeControl3.Location = new System.Drawing.Point(317, 20); + this.gaugeControl3.Name = "gaugeControl3"; + this.gaugeControl3.Size = new System.Drawing.Size(154, 72); + this.gaugeControl3.TabIndex = 6; + // + // digitalBackgroundLayerComponent3 + // + this.digitalBackgroundLayerComponent3.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F); + this.digitalBackgroundLayerComponent3.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent3.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent3.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent3.ZOrder = 1000; + // + // gaugeControl2 + // + this.gaugeControl2.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.dgCurrent}); + this.gaugeControl2.Location = new System.Drawing.Point(160, 20); + this.gaugeControl2.Name = "gaugeControl2"; + this.gaugeControl2.Size = new System.Drawing.Size(153, 72); + this.gaugeControl2.TabIndex = 5; + // + // digitalBackgroundLayerComponent2 + // + this.digitalBackgroundLayerComponent2.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F); + this.digitalBackgroundLayerComponent2.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent2.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent2.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent2.ZOrder = 1000; + // + // gaugeControl1 + // + this.gaugeControl1.Gauges.AddRange(new DevExpress.XtraGauges.Base.IGauge[] { + this.dgVoltage}); + this.gaugeControl1.Location = new System.Drawing.Point(3, 20); + this.gaugeControl1.Name = "gaugeControl1"; + this.gaugeControl1.Size = new System.Drawing.Size(153, 72); + this.gaugeControl1.TabIndex = 4; + // + // digitalBackgroundLayerComponent1 + // + this.digitalBackgroundLayerComponent1.BottomRight = new DevExpress.XtraGauges.Core.Base.PointF2D(265.8125F, 99.9625F); + this.digitalBackgroundLayerComponent1.Name = "digitalBackgroundLayerComponent1"; + this.digitalBackgroundLayerComponent1.ShapeType = DevExpress.XtraGauges.Core.Model.DigitalBackgroundShapeSetType.Style18; + this.digitalBackgroundLayerComponent1.TopLeft = new DevExpress.XtraGauges.Core.Base.PointF2D(26F, 0F); + this.digitalBackgroundLayerComponent1.ZOrder = 1000; + // + // layoutControlGroup2 + // + this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2"; + this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup2.GroupBordersVisible = false; + this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem3, + this.layoutControlItem4, + this.layoutControlItem5, + this.layoutControlItem6, + this.layoutControlItem24}); + this.layoutControlGroup2.Name = "Root"; + this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup2.Size = new System.Drawing.Size(789, 95); + this.layoutControlGroup2.TextVisible = false; + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.gaugeControl1; + this.layoutControlItem3.CustomizationFormText = " Voltage"; + this.layoutControlItem3.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(157, 93); + this.layoutControlItem3.Text = " Voltage"; + this.layoutControlItem3.TextLocation = DevExpress.Utils.Locations.Top; + this.layoutControlItem3.TextSize = new System.Drawing.Size(76, 14); + // + // layoutControlItem4 + // + this.layoutControlItem4.Control = this.gaugeControl2; + this.layoutControlItem4.CustomizationFormText = " Current"; + this.layoutControlItem4.Location = new System.Drawing.Point(157, 0); + this.layoutControlItem4.Name = "layoutControlItem4"; + this.layoutControlItem4.Size = new System.Drawing.Size(157, 93); + this.layoutControlItem4.Text = " Current"; + this.layoutControlItem4.TextLocation = DevExpress.Utils.Locations.Top; + this.layoutControlItem4.TextSize = new System.Drawing.Size(76, 14); + // + // layoutControlItem5 + // + this.layoutControlItem5.Control = this.gaugeControl3; + this.layoutControlItem5.CustomizationFormText = " SOC"; + this.layoutControlItem5.Location = new System.Drawing.Point(314, 0); + this.layoutControlItem5.Name = "layoutControlItem5"; + this.layoutControlItem5.Size = new System.Drawing.Size(158, 93); + this.layoutControlItem5.Text = " SOC"; + this.layoutControlItem5.TextLocation = DevExpress.Utils.Locations.Top; + this.layoutControlItem5.TextSize = new System.Drawing.Size(76, 14); + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.gaugeControl4; + this.layoutControlItem6.CustomizationFormText = " Temperature"; + this.layoutControlItem6.Location = new System.Drawing.Point(629, 0); + this.layoutControlItem6.MinSize = new System.Drawing.Size(104, 41); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(158, 93); + this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem6.Text = " Temperature"; + this.layoutControlItem6.TextLocation = DevExpress.Utils.Locations.Top; + this.layoutControlItem6.TextSize = new System.Drawing.Size(76, 14); + // + // layoutControlItem24 + // + this.layoutControlItem24.Control = this.gaugeControl5; + this.layoutControlItem24.CustomizationFormText = " SOH"; + this.layoutControlItem24.Location = new System.Drawing.Point(472, 0); + this.layoutControlItem24.MinSize = new System.Drawing.Size(100, 24); + this.layoutControlItem24.Name = "layoutControlItem24"; + this.layoutControlItem24.Size = new System.Drawing.Size(157, 93); + this.layoutControlItem24.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem24.Text = " SOH"; + this.layoutControlItem24.TextLocation = DevExpress.Utils.Locations.Top; + this.layoutControlItem24.TextSize = new System.Drawing.Size(76, 14); + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.lcitemValue, + this.layoutControlItem2, + this.layoutControlItem8, + this.icitemStatusAlarm, + this.layoutControlItem19, + this.lbHeatbeat, + this.layoutControlItem21, + this.layoutControlItem20, + this.layoutControlGroup7}); + this.layoutControlGroup1.Name = "Root"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup1.Size = new System.Drawing.Size(948, 572); + this.layoutControlGroup1.TextVisible = false; + // + // lcitemValue + // + this.lcitemValue.Control = this.gbValue; + this.lcitemValue.CustomizationFormText = "lcitemValue"; + this.lcitemValue.Location = new System.Drawing.Point(0, 0); + this.lcitemValue.MaxSize = new System.Drawing.Size(0, 124); + this.lcitemValue.MinSize = new System.Drawing.Size(104, 124); + this.lcitemValue.Name = "lcitemValue"; + this.lcitemValue.Size = new System.Drawing.Size(797, 124); + this.lcitemValue.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemValue.TextSize = new System.Drawing.Size(0, 0); + this.lcitemValue.TextVisible = false; + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.gbDetail; + this.layoutControlItem2.CustomizationFormText = "layoutControlItem2"; + this.layoutControlItem2.Location = new System.Drawing.Point(0, 217); + this.layoutControlItem2.MinSize = new System.Drawing.Size(104, 24); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(946, 353); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // layoutControlItem8 + // + this.layoutControlItem8.Control = this.gbAlarm; + this.layoutControlItem8.CustomizationFormText = "layoutControlItem8"; + this.layoutControlItem8.Location = new System.Drawing.Point(170, 124); + this.layoutControlItem8.MaxSize = new System.Drawing.Size(0, 93); + this.layoutControlItem8.MinSize = new System.Drawing.Size(483, 93); + this.layoutControlItem8.Name = "layoutControlItem8"; + this.layoutControlItem8.Size = new System.Drawing.Size(578, 93); + this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem8.TextVisible = false; + // + // icitemStatusAlarm + // + this.icitemStatusAlarm.Control = this.gbStatusAlarm; + this.icitemStatusAlarm.CustomizationFormText = "icitemStatusAlarm"; + this.icitemStatusAlarm.Location = new System.Drawing.Point(0, 124); + this.icitemStatusAlarm.MinSize = new System.Drawing.Size(104, 24); + this.icitemStatusAlarm.Name = "icitemStatusAlarm"; + this.icitemStatusAlarm.Size = new System.Drawing.Size(170, 93); + this.icitemStatusAlarm.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.icitemStatusAlarm.TextSize = new System.Drawing.Size(0, 0); + this.icitemStatusAlarm.TextVisible = false; + // + // layoutControlItem19 + // + this.layoutControlItem19.Control = this.btnParam; + this.layoutControlItem19.CustomizationFormText = "layoutControlItem19"; + this.layoutControlItem19.Location = new System.Drawing.Point(853, 149); + this.layoutControlItem19.MinSize = new System.Drawing.Size(50, 26); + this.layoutControlItem19.Name = "layoutControlItem19"; + this.layoutControlItem19.Size = new System.Drawing.Size(93, 35); + this.layoutControlItem19.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem19.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem19.TextVisible = false; + // + // lbHeatbeat + // + this.lbHeatbeat.AllowHotTrack = false; + this.lbHeatbeat.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold); + this.lbHeatbeat.AppearanceItemCaption.Options.UseFont = true; + this.lbHeatbeat.AppearanceItemCaption.Options.UseTextOptions = true; + this.lbHeatbeat.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lbHeatbeat.CustomizationFormText = "HB"; + this.lbHeatbeat.Location = new System.Drawing.Point(853, 124); + this.lbHeatbeat.MinSize = new System.Drawing.Size(50, 25); + this.lbHeatbeat.Name = "lbHeatbeat"; + this.lbHeatbeat.Size = new System.Drawing.Size(93, 25); + this.lbHeatbeat.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lbHeatbeat.Text = "HB"; + this.lbHeatbeat.TextSize = new System.Drawing.Size(17, 16); + // + // layoutControlItem21 + // + this.layoutControlItem21.Control = this.gbEtc; + this.layoutControlItem21.CustomizationFormText = "layoutControlItem21"; + this.layoutControlItem21.Location = new System.Drawing.Point(748, 124); + this.layoutControlItem21.Name = "layoutControlItem21"; + this.layoutControlItem21.Size = new System.Drawing.Size(105, 93); + this.layoutControlItem21.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem21.TextVisible = false; + // + // layoutControlItem20 + // + this.layoutControlItem20.Control = this.btnCalib; + this.layoutControlItem20.Location = new System.Drawing.Point(853, 184); + this.layoutControlItem20.MinSize = new System.Drawing.Size(44, 26); + this.layoutControlItem20.Name = "layoutControlItem20"; + this.layoutControlItem20.Size = new System.Drawing.Size(93, 33); + this.layoutControlItem20.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem20.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem20.TextVisible = false; + // + // layoutControlGroup7 + // + this.layoutControlGroup7.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem25}); + this.layoutControlGroup7.Location = new System.Drawing.Point(797, 0); + this.layoutControlGroup7.Name = "layoutControlGroup7"; + this.layoutControlGroup7.Padding = new DevExpress.XtraLayout.Utils.Padding(3, 3, 3, 3); + this.layoutControlGroup7.Size = new System.Drawing.Size(149, 124); + this.layoutControlGroup7.Text = " "; + // + // layoutControlItem25 + // + this.layoutControlItem25.Control = this.pictureEdit1; + this.layoutControlItem25.CustomizationFormText = "Logo"; + this.layoutControlItem25.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem25.MaxSize = new System.Drawing.Size(137, 0); + this.layoutControlItem25.MinSize = new System.Drawing.Size(137, 24); + this.layoutControlItem25.Name = "layoutControlItem25"; + this.layoutControlItem25.Size = new System.Drawing.Size(137, 91); + this.layoutControlItem25.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem25.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem25.TextVisible = false; + // + // tmrDisplay + // + this.tmrDisplay.Interval = 500; + this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick); + // + // ucCvDiff + // + this.ucCvDiff.Location = new System.Drawing.Point(459, 35); + this.ucCvDiff.MinimumSize = new System.Drawing.Size(0, 27); + this.ucCvDiff.Name = "ucCvDiff"; + this.ucCvDiff.Size = new System.Drawing.Size(109, 27); + this.ucCvDiff.TabIndex = 13; + // + // ucLowSOC + // + this.ucLowSOC.Location = new System.Drawing.Point(459, 2); + this.ucLowSOC.MinimumSize = new System.Drawing.Size(0, 27); + this.ucLowSOC.Name = "ucLowSOC"; + this.ucLowSOC.Size = new System.Drawing.Size(109, 29); + this.ucLowSOC.TabIndex = 12; + // + // ucDchOverCurr + // + this.ucDchOverCurr.Location = new System.Drawing.Point(344, 35); + this.ucDchOverCurr.MinimumSize = new System.Drawing.Size(0, 27); + this.ucDchOverCurr.Name = "ucDchOverCurr"; + this.ucDchOverCurr.Size = new System.Drawing.Size(111, 27); + this.ucDchOverCurr.TabIndex = 11; + // + // ucChaOverCurr + // + this.ucChaOverCurr.Location = new System.Drawing.Point(344, 2); + this.ucChaOverCurr.MinimumSize = new System.Drawing.Size(0, 27); + this.ucChaOverCurr.Name = "ucChaOverCurr"; + this.ucChaOverCurr.Size = new System.Drawing.Size(111, 29); + this.ucChaOverCurr.TabIndex = 10; + // + // ucUnderVolt + // + this.ucUnderVolt.Location = new System.Drawing.Point(116, 35); + this.ucUnderVolt.MinimumSize = new System.Drawing.Size(0, 27); + this.ucUnderVolt.Name = "ucUnderVolt"; + this.ucUnderVolt.Size = new System.Drawing.Size(111, 27); + this.ucUnderVolt.TabIndex = 9; + // + // ucOverVolt + // + this.ucOverVolt.Location = new System.Drawing.Point(116, 2); + this.ucOverVolt.MinimumSize = new System.Drawing.Size(0, 27); + this.ucOverVolt.Name = "ucOverVolt"; + this.ucOverVolt.Size = new System.Drawing.Size(111, 29); + this.ucOverVolt.TabIndex = 8; + // + // ucCellUnderVolt + // + this.ucCellUnderVolt.Location = new System.Drawing.Point(231, 35); + this.ucCellUnderVolt.MinimumSize = new System.Drawing.Size(0, 27); + this.ucCellUnderVolt.Name = "ucCellUnderVolt"; + this.ucCellUnderVolt.Size = new System.Drawing.Size(109, 27); + this.ucCellUnderVolt.TabIndex = 7; + // + // ucCellOverVolt + // + this.ucCellOverVolt.Location = new System.Drawing.Point(231, 2); + this.ucCellOverVolt.MinimumSize = new System.Drawing.Size(0, 27); + this.ucCellOverVolt.Name = "ucCellOverVolt"; + this.ucCellOverVolt.Size = new System.Drawing.Size(109, 29); + this.ucCellOverVolt.TabIndex = 6; + // + // ucLowTemp + // + this.ucLowTemp.Location = new System.Drawing.Point(2, 35); + this.ucLowTemp.MinimumSize = new System.Drawing.Size(0, 27); + this.ucLowTemp.Name = "ucLowTemp"; + this.ucLowTemp.Size = new System.Drawing.Size(110, 27); + this.ucLowTemp.TabIndex = 5; + // + // ucHighTemp + // + this.ucHighTemp.Location = new System.Drawing.Point(2, 2); + this.ucHighTemp.MinimumSize = new System.Drawing.Size(0, 27); + this.ucHighTemp.Name = "ucHighTemp"; + this.ucHighTemp.Size = new System.Drawing.Size(110, 29); + this.ucHighTemp.TabIndex = 4; + // + // layoutControlItem9 + // + this.layoutControlItem9.Control = this.ucHighTemp; + this.layoutControlItem9.CustomizationFormText = "layoutControlItem9"; + this.layoutControlItem9.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem9.MinSize = new System.Drawing.Size(95, 33); + this.layoutControlItem9.Name = "layoutControlItem9"; + this.layoutControlItem9.Size = new System.Drawing.Size(114, 33); + this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem9.TextVisible = false; + // + // layoutControlItem10 + // + this.layoutControlItem10.Control = this.ucLowTemp; + this.layoutControlItem10.CustomizationFormText = "layoutControlItem10"; + this.layoutControlItem10.Location = new System.Drawing.Point(0, 33); + this.layoutControlItem10.MinSize = new System.Drawing.Size(24, 31); + this.layoutControlItem10.Name = "layoutControlItem10"; + this.layoutControlItem10.Size = new System.Drawing.Size(114, 31); + this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem10.TextVisible = false; + // + // layoutControlItem11 + // + this.layoutControlItem11.Control = this.ucCellOverVolt; + this.layoutControlItem11.CustomizationFormText = "layoutControlItem11"; + this.layoutControlItem11.Location = new System.Drawing.Point(229, 0); + this.layoutControlItem11.MinSize = new System.Drawing.Size(95, 33); + this.layoutControlItem11.Name = "layoutControlItem11"; + this.layoutControlItem11.Size = new System.Drawing.Size(113, 33); + this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem11.TextVisible = false; + // + // layoutControlItem12 + // + this.layoutControlItem12.Control = this.ucCellUnderVolt; + this.layoutControlItem12.CustomizationFormText = "layoutControlItem12"; + this.layoutControlItem12.Location = new System.Drawing.Point(229, 33); + this.layoutControlItem12.MinSize = new System.Drawing.Size(24, 31); + this.layoutControlItem12.Name = "layoutControlItem12"; + this.layoutControlItem12.Size = new System.Drawing.Size(113, 31); + this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem12.TextVisible = false; + // + // layoutControlItem13 + // + this.layoutControlItem13.Control = this.ucOverVolt; + this.layoutControlItem13.CustomizationFormText = "layoutControlItem13"; + this.layoutControlItem13.Location = new System.Drawing.Point(114, 0); + this.layoutControlItem13.MinSize = new System.Drawing.Size(95, 33); + this.layoutControlItem13.Name = "layoutControlItem13"; + this.layoutControlItem13.Size = new System.Drawing.Size(115, 33); + this.layoutControlItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem13.TextVisible = false; + // + // layoutControlItem14 + // + this.layoutControlItem14.Control = this.ucUnderVolt; + this.layoutControlItem14.CustomizationFormText = "layoutControlItem14"; + this.layoutControlItem14.Location = new System.Drawing.Point(114, 33); + this.layoutControlItem14.MinSize = new System.Drawing.Size(24, 31); + this.layoutControlItem14.Name = "layoutControlItem14"; + this.layoutControlItem14.Size = new System.Drawing.Size(115, 31); + this.layoutControlItem14.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem14.TextVisible = false; + // + // layoutControlItem15 + // + this.layoutControlItem15.Control = this.ucChaOverCurr; + this.layoutControlItem15.CustomizationFormText = "layoutControlItem15"; + this.layoutControlItem15.Location = new System.Drawing.Point(342, 0); + this.layoutControlItem15.MinSize = new System.Drawing.Size(95, 33); + this.layoutControlItem15.Name = "layoutControlItem15"; + this.layoutControlItem15.Size = new System.Drawing.Size(115, 33); + this.layoutControlItem15.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem15.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem15.TextVisible = false; + // + // layoutControlItem16 + // + this.layoutControlItem16.Control = this.ucDchOverCurr; + this.layoutControlItem16.CustomizationFormText = "layoutControlItem16"; + this.layoutControlItem16.Location = new System.Drawing.Point(342, 33); + this.layoutControlItem16.MinSize = new System.Drawing.Size(24, 31); + this.layoutControlItem16.Name = "layoutControlItem16"; + this.layoutControlItem16.Size = new System.Drawing.Size(115, 31); + this.layoutControlItem16.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem16.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem16.TextVisible = false; + // + // layoutControlItem17 + // + this.layoutControlItem17.Control = this.ucLowSOC; + this.layoutControlItem17.CustomizationFormText = "layoutControlItem17"; + this.layoutControlItem17.Location = new System.Drawing.Point(457, 0); + this.layoutControlItem17.MinSize = new System.Drawing.Size(95, 33); + this.layoutControlItem17.Name = "layoutControlItem17"; + this.layoutControlItem17.Size = new System.Drawing.Size(113, 33); + this.layoutControlItem17.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem17.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem17.TextVisible = false; + // + // layoutControlItem18 + // + this.layoutControlItem18.Control = this.ucCvDiff; + this.layoutControlItem18.CustomizationFormText = "layoutControlItem18"; + this.layoutControlItem18.Location = new System.Drawing.Point(457, 33); + this.layoutControlItem18.MinSize = new System.Drawing.Size(24, 31); + this.layoutControlItem18.Name = "layoutControlItem18"; + this.layoutControlItem18.Size = new System.Drawing.Size(113, 31); + this.layoutControlItem18.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem18.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem18.TextVisible = false; + // + // dgSOH + // + this.dgSOH.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.dgSOH.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.dgSOH.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent5}); + this.dgSOH.Bounds = new System.Drawing.Rectangle(6, 6, 141, 60); + this.dgSOH.DigitCount = 5; + this.dgSOH.Name = "dgSOH"; + this.dgSOH.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.dgSOH.Text = "00,000"; + // + // dgTemperature + // + this.dgTemperature.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.dgTemperature.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.dgTemperature.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent4}); + this.dgTemperature.Bounds = new System.Drawing.Rectangle(6, 6, 142, 60); + this.dgTemperature.DigitCount = 5; + this.dgTemperature.Name = "dgTemperature"; + this.dgTemperature.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.dgTemperature.Text = "00,000"; + // + // dgSOC + // + this.dgSOC.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.dgSOC.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.dgSOC.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent3}); + this.dgSOC.Bounds = new System.Drawing.Rectangle(6, 6, 142, 60); + this.dgSOC.DigitCount = 5; + this.dgSOC.Name = "dgSOC"; + this.dgSOC.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.dgSOC.Text = "00,000"; + // + // dgCurrent + // + this.dgCurrent.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.dgCurrent.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.dgCurrent.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent2}); + this.dgCurrent.Bounds = new System.Drawing.Rectangle(6, 6, 141, 60); + this.dgCurrent.DigitCount = 5; + this.dgCurrent.Name = "dgCurrent"; + this.dgCurrent.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.dgCurrent.Text = "00,000"; + // + // dgVoltage + // + this.dgVoltage.AppearanceOff.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#E3E5EA"); + this.dgVoltage.AppearanceOn.ContentBrush = new DevExpress.XtraGauges.Core.Drawing.SolidBrushObject("Color:#59616F"); + this.dgVoltage.BackgroundLayers.AddRange(new DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent[] { + this.digitalBackgroundLayerComponent1}); + this.dgVoltage.Bounds = new System.Drawing.Rectangle(6, 6, 141, 60); + this.dgVoltage.DigitCount = 5; + this.dgVoltage.Name = "dgVoltage"; + this.dgVoltage.Padding = new DevExpress.XtraGauges.Core.Base.TextSpacing(26, 20, 26, 20); + this.dgVoltage.Text = "00,000"; + // + // ucShelfStatus + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.layoutControl1); + this.Name = "ucShelfStatus"; + this.Size = new System.Drawing.Size(948, 572); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pictureEdit1.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbEtc)).EndInit(); + this.gbEtc.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl6)).EndInit(); + this.layoutControl6.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem23)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbAlarm)).EndInit(); + this.gbAlarm.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl5)).EndInit(); + this.layoutControl5.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbStatusAlarm)).EndInit(); + this.gbStatusAlarm.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit(); + this.layoutControl3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.panelControl2)).EndInit(); + this.panelControl2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.panelControl1)).EndInit(); + this.panelControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemStatus)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemAlarm)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbDetail)).EndInit(); + this.gbDetail.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).EndInit(); + this.layoutControl4.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(xyDiagram1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(series1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(series2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TChart)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(xyDiagram2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(series3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(series4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.VChart)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbValue)).EndInit(); + this.gbValue.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit(); + this.layoutControl2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.digitalBackgroundLayerComponent1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem24)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemValue)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.icitemStatusAlarm)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lbHeatbeat)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem21)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem25)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgSOH)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgTemperature)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgSOC)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgCurrent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgVoltage)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraEditors.GroupControl gbDetail; + private DevExpress.XtraEditors.GroupControl gbValue; + private DevExpress.XtraLayout.LayoutControlItem lcitemValue; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.LayoutControl layoutControl2; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl4; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgTemperature; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent4; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl3; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgSOC; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent3; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl2; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgCurrent; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent2; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl1; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgVoltage; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private DevExpress.XtraEditors.GroupControl gbStatusAlarm; + private DevExpress.XtraLayout.LayoutControlItem icitemStatusAlarm; + private DevExpress.XtraLayout.LayoutControl layoutControl3; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3; + private DevExpress.XtraEditors.PanelControl panelControl2; + private DevExpress.XtraEditors.PanelControl panelControl1; + private DevExpress.XtraLayout.LayoutControlItem lcitemStatus; + private DevExpress.XtraLayout.LayoutControlItem lcitemAlarm; + private DevExpress.XtraEditors.LabelControl lbStatus; + private DevExpress.XtraEditors.LabelControl lbAlarm; + private DevExpress.XtraLayout.LayoutControl layoutControl4; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4; + private System.Windows.Forms.Timer tmrDisplay; + private DevExpress.XtraEditors.GroupControl gbAlarm; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8; + private DevExpress.XtraLayout.LayoutControl layoutControl5; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup5; + private ucStatus ucCellUnderVolt; + private ucStatus ucCellOverVolt; + private ucStatus ucLowTemp; + private ucStatus ucHighTemp; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12; + private ucStatus ucCvDiff; + private ucStatus ucLowSOC; + private ucStatus ucDchOverCurr; + private ucStatus ucChaOverCurr; + private ucStatus ucUnderVolt; + private ucStatus ucOverVolt; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem15; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem16; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem17; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem18; + private DevExpress.XtraEditors.SimpleButton btnParam; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem19; + private DevExpress.XtraLayout.SimpleLabelItem lbHeatbeat; + private DevExpress.XtraEditors.GroupControl gbEtc; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem21; + private DevExpress.XtraLayout.LayoutControl layoutControl6; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup6; + private DevExpress.XtraEditors.LabelControl lbAmbTemp; + private DevExpress.XtraEditors.LabelControl lbFetTemp; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem22; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem23; + private DevExpress.XtraCharts.ChartControl VChart; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraCharts.ChartControl TChart; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7; + private DevExpress.XtraEditors.SimpleButton btnCalib; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem20; + private DevExpress.XtraGauges.Win.GaugeControl gaugeControl5; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalGauge dgSOH; + private DevExpress.XtraGauges.Win.Gauges.Digital.DigitalBackgroundLayerComponent digitalBackgroundLayerComponent5; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem24; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup7; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem25; + private DevExpress.XtraEditors.PictureEdit pictureEdit1; + } +} diff --git a/LFP_Manager/Controls/ucShelfStatus.cs b/LFP_Manager/Controls/ucShelfStatus.cs new file mode 100644 index 0000000..2b2a60a --- /dev/null +++ b/LFP_Manager/Controls/ucShelfStatus.cs @@ -0,0 +1,1729 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Linq; +using System.Windows.Forms; +using DevExpress.XtraEditors; +using DevExpress.XtraCharts; + +using LFP_Manager.Forms; +using LFP_Manager.DataStructure; +using LFP_Manager.Utils; +using DevExpress.Utils.Text; + +namespace LFP_Manager.Controls +{ + public delegate void paramCommand(int sId, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib); + + public partial class ucShelfStatus : DevExpress.XtraEditors.XtraUserControl + { + #region CONSTDATA + const int STATUS_QTY = 10; + #endregion + + #region VARIABLES + int ModuleID = 1; + bool start = false; + + CommConfig Config; + + DeviceSystemData[] SystemData; + + DataTable[] dtVolt; + DataTable[] dtTemp; + Series[] seriesVolt; + Series[] seriesTemp; + + ucStatus[] alarmTrip; + + Palette paletteV; + Palette paletteT; + + public event paramCommand OnCommand = null; + public event SendDataUartEvent OnSendUartData = null; + #endregion + + #region CONSTRUCTORS + public ucShelfStatus() + { + InitializeComponent(); + + InitStatusName(); + } + #endregion + + #region PROPERTIES + public void UpdateSystemId(int mID) + { + ModuleID = mID; + } + + public void Start(int mID, ref CommConfig aConfig, ref DeviceSystemData[] aSystemData) + { + ModuleID = mID; + Config = aConfig; + SystemData = aSystemData; + + switch (Config.CommType) + { + case csConstData.CommType.COMM_UART: + btnParam.Text = "Param"; + btnParam.Enabled = true; + btnCalib.Enabled = true; + btnCalib.Text = "Calib"; + break; + case csConstData.CommType.COMM_RS485: + btnParam.Text = "Information"; + btnParam.Enabled = true; + btnCalib.Enabled = true; + btnCalib.Text = "Calib"; + break; + case csConstData.CommType.COMM_SNMP: + btnParam.Text = "Information"; + btnParam.Enabled = true; + btnCalib.Enabled = false; + btnCalib.Text = ""; + break; + default: + break; + } + + InitDataTableVolt(); + InitDataTableTemp(); + vSeriesInit(); + tSeriesInit(); + + tmrDisplay.Start(); + + start = true; + } + + public void Stop() + { + start = false; + tmrDisplay.Stop(); + } + + public void ModuleIDSet(int mID) + { + ModuleID = mID; + } + + public int ModuleIDGet() + { + return ModuleID; + } + + public void UpdateData(ref DeviceSystemData[] aSystemData) + { + SystemData = aSystemData; + } + #endregion + + #region INIT_COMPONENT + + private void InitStatusName() + { + ucHighTemp.SetName("High Temp"); + //ucHighTemp.SetTextWidth(80); + ucLowTemp.SetName("Low Temp"); + //ucLowTemp.SetTextWidth(80); + ucOverVolt.SetName("Pack OV"); + //ucOverVolt.SetTextWidth(80); + ucUnderVolt.SetName("Pack UV"); + //ucUnderVolt.SetTextWidth(80); + ucCellOverVolt.SetName("Cell OV"); + //ucOverVolt.SetTextWidth(80); + ucCellUnderVolt.SetName("Cell UV"); + //ucUnderVolt.SetTextWidth(80); + ucChaOverCurr.SetName("Cha OC"); + //ucChaOverCurr.SetTextWidth(110); + ucDchOverCurr.SetName("Dch OC"); + //ucDchOverCurr.SetTextWidth(110); + ucLowSOC.SetName("Low SOC"); + //ucLowSOC.SetTextWidth(80); + ucCvDiff.SetName("ETC. Alarm"); + //ucMdComm.SetTextWidth(80); + + alarmTrip = new ucStatus[STATUS_QTY]; + + alarmTrip[0] = ucHighTemp; + alarmTrip[1] = ucLowTemp; + alarmTrip[2] = ucOverVolt; + alarmTrip[3] = ucUnderVolt; + alarmTrip[4] = ucCellOverVolt; + alarmTrip[5] = ucCellUnderVolt; + alarmTrip[6] = ucChaOverCurr; + alarmTrip[7] = ucDchOverCurr; + alarmTrip[8] = ucLowSOC; + alarmTrip[9] = ucCvDiff; + } + + private void InitDataTableVolt() + { + dtVolt = new DataTable[SystemData[ModuleID - 1].cellQty]; + + for (int i = 0; i < dtVolt.Length; i++) + { + dtVolt[i] = new DataTable(); + dtVolt[i].Columns.Add("C_No", typeof(Int32)); + dtVolt[i].Columns.Add("Alarm", typeof(Int32)); + dtVolt[i].Columns.Add("Value", typeof(double)); + + // Add data rows to the table. + DataRow row = null; + + row = dtVolt[i].NewRow(); + row["C_No"] = i + 1; + row["Alarm"] = 0; + row["Value"] = 3.2; + + dtVolt[i].Rows.Add(row); + } + } + + private void InitDataTableTemp() + { + dtTemp = new DataTable[SystemData[ModuleID - 1].tempQty]; + for (int i = 0; i < dtTemp.Length; i++) + { + dtTemp[i] = new DataTable(); + dtTemp[i].Columns.Add("T_No", typeof(Int32)); + dtTemp[i].Columns.Add("Alarm", typeof(Int32)); + dtTemp[i].Columns.Add("Value", typeof(double)); + + // Add data rows to the table. + DataRow row = null; + + row = dtTemp[i].NewRow(); + row["T_No"] = i + 1; + row["Alarm"] = 0; + row["Value"] = 25.4; + dtTemp[i].Rows.Add(row); + } + } + + private Palette vPaletteInit(string bName, short bValue) + { + paletteV = new Palette(bName); + for (int i = 0; i < dtVolt.Length; i++) + { + if (((bValue >> i) & 0x0001) == 0x0001) + paletteV.Add(Color.Orange); + else + paletteV.Add(Color.Green); + } + return paletteV; + } + + private void vPaletteUpdate(short bValue) + { + paletteV.Clear(); + for (int i = 0; i < dtVolt.Length; i++) + { + if (((bValue >> i) & 0x0001) == 0x0001) + paletteV.Add(Color.Orange); + else + paletteV.Add(Color.Green); + } + } + + private Palette tPaletteInit(string bName, short bValue) + { + paletteT = new Palette(bName); + + for (int i = 0; i < dtTemp.Length; i++) + { + if (((bValue >> i) & 0x0001) == 0x0001) + paletteT.Add(Color.Orange); + else + paletteT.Add(Color.Green); + } + + return paletteT; + } + + private void tPaletteUpdate(short bValue) + { + paletteT.Clear(); + for (int i = 0; i < dtTemp.Length; i++) + { + if (((bValue >> i) & 0x0001) == 0x0001) + paletteT.Add(Color.Orange); + else + paletteT.Add(Color.Green); + } + } + + private void vSeriesInit() + { + VChart.Series.Clear(); + VChart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False; + + seriesVolt = new Series[SystemData[ModuleID - 1].cellQty]; + + for (int i = 0; i < seriesVolt.Length; i++) + { + seriesVolt[i] = new Series(String.Format("C_{0:00}", i + 1), ViewType.Bar) + { + DataSource = dtVolt[i], + //Label.PointOptions.PointView = PointView.ArgumentAndValues, + //Label.PointOptions.ValueNumericOptions.Format = NumericFormat.Number, + //Label.PointOptions.ValueNumericOptions.Precision = 3, + CrosshairLabelPattern = "C_{A:00} : {V:F3}", + + // Specify data members to bind the series. + ArgumentScaleType = ScaleType.Numerical, + ArgumentDataMember = "C_No", + ValueScaleType = ScaleType.Numerical, + }; + ((SideBySideBarSeriesView)(seriesVolt[i].View)).BarWidth = 10.0; + seriesVolt[i].ValueDataMembers.AddRange(new string[] { "Value" }); + VChart.Series.Add(seriesVolt[i]); + } + + VChart.PaletteRepository.Clear(); + VChart.PaletteRepository.Add("V Palette", vPaletteInit("V Palette", 0)); + VChart.PaletteName = "V Palette"; + + // Cast the chart's diagram to the XYDiagram type, to access its axes. + XYDiagram diagram = (XYDiagram)VChart.Diagram; + if (diagram.AxisY.ConstantLines.Count > 0) + diagram.AxisY.ConstantLines.Clear(); + + // Create a constant line. + ConstantLine constantLineMax = new ConstantLine("Limit(Max)"); + ConstantLine constantLineMin = new ConstantLine("Limit(Min)"); + ConstantLine constantDataMax = new ConstantLine( + String.Format(" Max({0:#0.000}V:{1:00})", 0, 0)); + ConstantLine constantDataAvg = new ConstantLine( + String.Format(" Avg({0:#0.000}V) - ({1:#0.000}V)", 0, 0)); + ConstantLine constantDataMin = new ConstantLine( + String.Format("Min({0:#0.000}V:{1:00})", 0, 0)); + + constantLineMax.Color = Color.Red; + constantLineMin.Color = Color.Red; + + // Customize the behavior of the constant line. + constantLineMax.Visible = true; + constantLineMax.ShowInLegend = true; + constantLineMax.LegendText = "Limit(Max)"; + constantLineMax.ShowBehind = false; + + constantLineMin.Visible = true; + constantLineMin.ShowInLegend = true; + constantLineMin.LegendText = "Limit(Min)"; + constantLineMin.ShowBehind = false; + + constantDataMax.Visible = true; + constantDataMax.ShowInLegend = true; + constantDataMax.LegendText = "Max"; + constantDataMax.ShowBehind = false; + constantDataMax.Color = Color.MediumVioletRed; + constantDataMax.Title.TextColor = Color.Black; + constantDataMax.Title.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold); + + constantDataAvg.Visible = true; + constantDataAvg.ShowInLegend = true; + constantDataAvg.LegendText = "Avg"; + constantDataAvg.ShowBehind = false; + constantDataAvg.Color = Color.LawnGreen; + constantDataAvg.Title.TextColor = Color.Black; + constantDataAvg.Title.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold); + + constantDataMin.Visible = true; + constantDataMin.ShowInLegend = true; + constantDataMin.LegendText = "Min"; + constantDataMin.ShowBehind = false; + constantDataMin.Color = Color.BlueViolet; + constantDataMin.Title.TextColor = Color.Black; + constantDataMin.Title.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold); + + // Define its axis value. + constantLineMax.AxisValue = 3.85; + constantLineMin.AxisValue = 2.5; + constantDataMax.AxisValue = 0; + constantDataAvg.AxisValue = 0; + constantDataMin.AxisValue = 0; + + diagram.AxisY.ConstantLines.Add(constantLineMax); + diagram.AxisY.ConstantLines.Add(constantLineMin); + diagram.AxisY.ConstantLines.Add(constantDataMax); + diagram.AxisY.ConstantLines.Add(constantDataAvg); + diagram.AxisY.ConstantLines.Add(constantDataMin); + + // Axis Y + diagram.AxisY.VisualRange.Auto = false; + diagram.AxisY.VisualRange.AutoSideMargins = false; + diagram.AxisY.VisualRange.StartSideMargin = 0; + diagram.AxisY.VisualRange.EndSideMargin = 0; + diagram.AxisY.VisualRange.MaxValue = 4.0; + diagram.AxisY.VisualRange.MinValue = 2.0; + diagram.AxisY.WholeRange.MaxValue = 4.0; + diagram.AxisY.WholeRange.MinValue = 2.0; + + diagram.AxisY.NumericScaleOptions.AutoGrid = false; + diagram.AxisY.NumericScaleOptions.GridAlignment = NumericGridAlignment.Ones; + diagram.AxisY.NumericScaleOptions.GridOffset = 0; + diagram.AxisY.NumericScaleOptions.GridSpacing = 0.1; + + //diagram.AxisY.GridSpacing = 0.1; + diagram.AxisY.Title.Text = "Voltage(V)"; + //diagram.AxisY.Label.NumericOptions.Precision = 3; + diagram.AxisY.Title.Visibility = DevExpress.Utils.DefaultBoolean.True; + diagram.AxisY.Title.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular); + + // Axis X + diagram.AxisX.VisualRange.MaxValue = seriesVolt.Length; + diagram.AxisX.VisualRange.MinValue = 1; + diagram.AxisX.VisualRange.Auto = false; + diagram.AxisX.VisualRange.AutoSideMargins = false; + diagram.AxisX.VisualRange.SideMarginsValue = 0.5; + + diagram.AxisX.Title.Text = "Cell No"; + diagram.AxisX.Title.Visibility = DevExpress.Utils.DefaultBoolean.False; + diagram.AxisX.Title.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular); + } + + private void tSeriesInit() + { + TChart.Series.Clear(); + TChart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False; + + seriesTemp = new Series[SystemData[ModuleID - 1].tempQty]; + + for (int i = 0; i < seriesTemp.Length; i++) + { + seriesTemp[i] = new Series(String.Format("T_{0:00}", i + 1), ViewType.Bar) + { + DataSource = dtTemp[i], + //Label.PointOptions.PointView = PointView.ArgumentAndValues, + //Label.PointOptions.ValueNumericOptions.Format = NumericFormat.Number, + //Label.PointOptions.ValueNumericOptions.Precision = 3, + CrosshairLabelPattern = "T_{A:00} : {V:F1}", + + // Specify data members to bind the series. + ArgumentScaleType = ScaleType.Numerical, + ArgumentDataMember = "T_No", + ValueScaleType = ScaleType.Numerical, + }; + ((SideBySideBarSeriesView)(seriesTemp[i].View)).BarWidth = 2.5; + seriesTemp[i].ValueDataMembers.AddRange(new string[] { "Value" }); + TChart.Series.Add(seriesTemp[i]); + } + + TChart.PaletteRepository.Clear(); + TChart.PaletteRepository.Add("T Palette", tPaletteInit("T Palette", 0)); + TChart.PaletteName = "T Palette"; + + // Cast the chart's diagram to the XYDiagram type, to access its axes. + XYDiagram diagram = (XYDiagram)TChart.Diagram; + if (diagram.AxisY.ConstantLines.Count > 0) + diagram.AxisY.ConstantLines.Clear(); + + diagram.Margins.All = 0; + + ConstantLine constantLineMax = new ConstantLine("Limit(Max)"); + ConstantLine constantLineMin = new ConstantLine("Limit(Min)"); + ConstantLine constantDataMax = new ConstantLine(String.Format(" Max({0:#0.0}C)", 0)); + ConstantLine constantDataAvg = new ConstantLine(String.Format(" Avg({0:#0.0}C)", 0)); + ConstantLine constantDataMin = new ConstantLine(String.Format("Min({0:#0.0}C)", 0)); + + constantLineMax.Color = Color.Red; + constantLineMin.Color = Color.Red; + + // Customize the behavior of the constant line. + constantLineMax.Visible = true; + constantLineMax.ShowInLegend = true; + constantLineMax.LegendText = "Limit(Max)"; + constantLineMax.ShowBehind = false; + + constantLineMin.Visible = true; + constantLineMin.ShowInLegend = true; + constantLineMin.LegendText = "Limit(Min)"; + constantLineMin.ShowBehind = false; + + constantDataMax.Visible = true; + constantDataMax.ShowInLegend = true; + constantDataMax.LegendText = "Max"; + constantDataMax.ShowBehind = false; + constantDataMax.Color = Color.MediumVioletRed; + constantDataMax.Title.TextColor = Color.Black; + constantDataMax.Title.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold); + + constantDataAvg.Visible = true; + constantDataAvg.ShowInLegend = true; + constantDataAvg.LegendText = "Avg"; + constantDataAvg.ShowBehind = false; + constantDataAvg.Color = Color.LawnGreen; + constantDataAvg.Title.TextColor = Color.Black; + constantDataAvg.Title.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold); + + constantDataMin.Visible = true; + constantDataMin.ShowInLegend = true; + constantDataMin.LegendText = "Min"; + constantDataMin.ShowBehind = false; + constantDataMin.Color = Color.BlueViolet; + constantDataMin.Title.TextColor = Color.Black; + constantDataMin.Title.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold); + + // Define its axis value. + constantLineMax.AxisValue = 60.0; + constantLineMin.AxisValue = -20.0; + constantDataMax.AxisValue = 0; + constantDataAvg.AxisValue = 0; + constantDataMin.AxisValue = 0; + + diagram.AxisY.ConstantLines.Add(constantLineMax); + diagram.AxisY.ConstantLines.Add(constantLineMin); + diagram.AxisY.ConstantLines.Add(constantDataMax); + diagram.AxisY.ConstantLines.Add(constantDataAvg); + diagram.AxisY.ConstantLines.Add(constantDataMin); + + // Axis Y + diagram.AxisY.VisualRange.Auto = false; + diagram.AxisY.VisualRange.AutoSideMargins = false; + diagram.AxisY.VisualRange.StartSideMargin = 0; + diagram.AxisY.VisualRange.EndSideMargin = 0; + diagram.AxisY.VisualRange.MaxValue = 80.0; + diagram.AxisY.VisualRange.MinValue = -30.0; + diagram.AxisY.WholeRange.MaxValue = 80.0; + diagram.AxisY.WholeRange.MinValue = -30.0; + + diagram.AxisY.NumericScaleOptions.AutoGrid = false; + diagram.AxisY.NumericScaleOptions.GridAlignment = NumericGridAlignment.Ones; + diagram.AxisY.NumericScaleOptions.GridOffset = 0; + diagram.AxisY.NumericScaleOptions.GridSpacing = 5; + + diagram.AxisY.Title.Text = "Temperature(C)"; + diagram.AxisY.Title.Visibility = DevExpress.Utils.DefaultBoolean.True; + diagram.AxisY.Title.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular); + + // Axis X + diagram.AxisX.VisualRange.MaxValue = seriesTemp.Length; + diagram.AxisX.VisualRange.MinValue = 1; + diagram.AxisX.VisualRange.Auto = false; + diagram.AxisX.VisualRange.AutoSideMargins = false; + diagram.AxisX.VisualRange.SideMarginsValue = 0.5; + + diagram.AxisX.Title.Text = "Temperature No"; + diagram.AxisX.Title.Visibility = DevExpress.Utils.DefaultBoolean.False; + diagram.AxisX.Title.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular); + } + + #endregion + + #region DISPLAY DATA + + private void tmrDisplay_Tick(object sender, EventArgs e) + { + DisplayLevelMasking(); + switch (Config.CommType) + { + case csConstData.CommType.COMM_UART: + switch (Config.UartModelIndex) + { + case csConstData.MODEL_INDEX.LFPM_124050D: // 124050 + DisplayDataUart124050(); + break; + default: + DisplayDataUart(); + break; + } + break; + case csConstData.CommType.COMM_RS485: + DisplayDataRs485(); + break; + case csConstData.CommType.COMM_SNMP: + DisplayDataSnmp(); + break; + default: + break; + } + } + + void DisplayLevelMasking() + { + switch (Config.CommType) + { + case csConstData.CommType.COMM_UART: + // UART Mode + switch (Config.ControlLevel) + { + case 0: // User Level + btnCalib.Text = "Calib"; + btnCalib.Enabled = false; + break; + case 1: // Technician Level + btnCalib.Text = "Calib"; + btnCalib.Enabled = true; + break; + case 2: // Engineer Level + btnCalib.Text = "Calib"; + btnCalib.Enabled = true; + break; + case 3: // Master Level + btnCalib.Text = "Calib"; + btnCalib.Enabled = true; + break; + default: // User Level + btnCalib.Text = "Calib"; + btnCalib.Enabled = true; + break; + } + break; + case csConstData.CommType.COMM_RS485: + switch (Config.ControlLevel) + { + case 0: // User Level + btnCalib.Text = "Calib"; + btnCalib.Enabled = false; + break; + case 1: // Technician Level + btnCalib.Text = "Calib"; + btnCalib.Enabled = true; + break; + case 2: // Engineer Level + btnCalib.Text = "Calib"; + btnCalib.Enabled = true; + break; + case 3: // Master Level + btnCalib.Text = "Calib"; + btnCalib.Enabled = true; + break; + default: // User Level + btnCalib.Text = "Calib"; + btnCalib.Enabled = true; + break; + } + break; + case csConstData.CommType.COMM_SNMP: + // SNMP Mode + btnCalib.Enabled = false; + btnCalib.Text = ""; + break; + default: + break; + } + } + + void DisplayDataUart() + { + if (start) + { + dgVoltage.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.voltageOfPack) / 10); + dgCurrent.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.current) / 10); + dgSOC.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.rSOC) / 10); + dgSOH.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.stateOfHealth) / 10); + dgTemperature.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].AvgData.maxTemp) / 10); //Byul 21.08.09 "maxTemp" + lbFetTemp.Text = String.Format(" FET: {0:##0.0}C", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.Ext1Temperature) / 10); + lbAmbTemp.Text = String.Format(" AMB: {0:##0.0}C", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.Ext2Temperature) / 10); + + //lbFetTemp.Text = String.Format(" FAULT: 0x{0:X4}", SystemData[ModuleID - 1].StatusData.protection); + + lbHeatbeat.Text = String.Format("Cycle: {0}", SystemData[ModuleID - 1].ValueData.cycleCount); + + DisplayCellVoltage(); + DisplayCellTemperature(); + + DisplayInformationUart(); + DisplayAlarmUart(); + DisplayStatusStrUart(); + DisplayAlarmStrUart(); + } + } + + void DisplayDataUart124050() + { + if (start) + { + dgVoltage.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.voltageOfPack) / 10); + dgCurrent.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.current) / 10); + dgSOC.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.rSOC) / 10); + dgSOH.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.stateOfHealth) / 10); + dgTemperature.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].AvgData.maxTemp) / 10); //Byul 21.08.09 "maxTemp" + lbFetTemp.Text = String.Format(" FET: {0:##0.0}C", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.Ext1Temperature) / 10); + lbAmbTemp.Text = String.Format(" AMB: {0:##0.0}C", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.Ext2Temperature) / 10); + + //lbFetTemp.Text = String.Format(" FAULT: 0x{0:X4}", SystemData[ModuleID - 1].StatusData.specialAlarm); + + lbHeatbeat.Text = String.Format("Cycle: {0}", SystemData[ModuleID - 1].ValueData.cycleCount); + + DisplayCellVoltage(); + DisplayCellTemperature(); + + DisplayInformationUart(); + DisplayAlarmUart124050(); + DisplayStatusStrUart124050(); + DisplayAlarmStrUart124050(); + } + } + void DisplayDataRs485() + { + if (start) + { + dgVoltage.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.voltageOfPack) / 10); + dgCurrent.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.current) / 10); + dgSOC.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.rSOC) / 10); + dgSOH.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.stateOfHealth) / 10); + dgTemperature.Text = String.Format("{0:0.0}", Convert.ToDouble(SystemData[ModuleID - 1].AvgData.maxTemp) / 10); //Byul 21.08.09 "maxTemp" + lbFetTemp.Text = String.Format(@" AVG: {0:##0.0}C", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.Ext1Temperature) / 10); + lbAmbTemp.Text = String.Format(@" AMB: {0:##0.0}C", Convert.ToDouble(SystemData[ModuleID - 1].ValueData.Ext2Temperature) / 10); + + lbHeatbeat.Text = String.Format("Cycle: {0}", SystemData[ModuleID - 1].ValueData.cycleCount); + //lbHeatbeat.Text = String.Format("Cycle: {0}", SystemData[ModuleID - 1].MaxValue.MaxChgCurrent); + + DisplayCellVoltage(); + DisplayCellTemperature(); + + DisplayInformationRs485(); + DisplayAlarmRs485(); + + DisplayStatusStrRs485(); + DisplayAlarmStrRs485(); + } + } + + void DisplayDataSnmp() + { + if (start) + { + dgVoltage.Text = string.Format("{0:0.0}", Convert.ToDouble(SystemData[0].ValueData.voltageOfPack) / 10); + dgCurrent.Text = string.Format("{0:0.0}", Convert.ToDouble(SystemData[0].ValueData.current) / 10); + dgSOC.Text = string.Format("{0:0.0}", Convert.ToDouble(SystemData[0].ValueData.rSOC) / 10); + dgSOH.Text = string.Format("{0:0.0}", Convert.ToDouble(SystemData[0].ValueData.stateOfHealth) / 10); + dgTemperature.Text = string.Format("{0:0.0}", Convert.ToDouble(SystemData[0].AvgData.maxTemp) / 10); //Byul 21.08.09 "maxTemp" + lbFetTemp.Text = string.Format(" FET: {0:##0.0}C", Convert.ToDouble(SystemData[0].ValueData.Ext1Temperature) / 10); + lbAmbTemp.Text = string.Format(" AMB: {0:##0.0}C", Convert.ToDouble(SystemData[0].ValueData.Ext2Temperature) / 10); + + lbHeatbeat.Text = string.Format("Cycle: {0}", SystemData[0].ValueData.cycleCount); + + DisplayCellVoltage(); + DisplayCellTemperature(); + + DisplayInformationUart(); + DisplayAlarmSnmp(); + DisplayStatusStrSnmp(); + DisplayAlarmStrSnmp(); + } + } + + private void DisplayInformationUart() + { + string strInfor = string.Format("V: {0} - Model: {1} - SN: {2}" + , SystemData[ModuleID - 1].Information.SwProductRev + , SystemData[ModuleID - 1].Information.ModelName + , SystemData[ModuleID - 1].Information.HwSerialNumber + ); + gbValue.Text = "Value - " + strInfor; + } + + private void DisplayInformationRs485() + { + string strInfor = string.Format("V: {0} - Model: {1} - SN: {2}" + , SystemData[ModuleID - 1].Information.SwProductRev + , SystemData[ModuleID - 1].Information.ModelName + , SystemData[ModuleID - 1].Information.HwSerialNumber + ); + gbValue.Text = "Value - " + strInfor; + } + + private void DisplayInformationSnmp() + { + string strInfor = string.Format("V: {0} - Model: {1} ({2}) - SN: {3} ({4})" + , SystemData[0].Information.SwProductRev + , SystemData[0].Information.ModelName + , SystemData[0].Information.ProductCode + , SystemData[0].Information.HwSerialNumber + , SystemData[0].Information.ManufacturingDate + ); + gbValue.Text = "Value - " + strInfor; + } + + private void DisplayCellVoltage() + { + try + { + for (int i = 0; i < seriesVolt.Length; i++) + dtVolt[i].Rows[0]["Value"] = Convert.ToDouble(SystemData[ModuleID - 1].ValueData.CellVoltage[i]) / 1000; + + if (SystemData[ModuleID - 1].StatusData.cellBallanceStatus != 0x0000) + vPaletteUpdate(SystemData[ModuleID - 1].StatusData.cellBallanceStatus); + else + vPaletteUpdate(0); + + double maxValue = Convert.ToDouble(SystemData[ModuleID - 1].AvgData.maxCellVoltage) / 1000; + double avgValue = Convert.ToDouble(SystemData[ModuleID - 1].AvgData.avgCellVoltage) / 1000; + double minValue = Convert.ToDouble(SystemData[ModuleID - 1].AvgData.minCellVoltage) / 1000; + double gapValue = Convert.ToDouble(SystemData[ModuleID - 1].AvgData.diffCellVoltage) / 1000; + int maxCno = Convert.ToInt32(SystemData[ModuleID - 1].AvgData.maxCellNum); + int minCno = Convert.ToInt32(SystemData[ModuleID - 1].AvgData.minCellNum); + + // Cast the chart's diagram to the XYDiagram type, to access its axes. + ((XYDiagram)VChart.Diagram).AxisY.ConstantLines[2].Name = + String.Format(" Max({0:#0.000}V:{1:00})", maxValue, maxCno); + ((XYDiagram)VChart.Diagram).AxisY.ConstantLines[3].Name = + String.Format(" Avg({0:#0.000}V) - ({1:#0.000}V)", avgValue, gapValue); + ((XYDiagram)VChart.Diagram).AxisY.ConstantLines[4].Name = + String.Format("Min({0:#0.000}V:{1:00})", minValue, minCno); + + // Define its axis value. + ((XYDiagram)VChart.Diagram).AxisY.ConstantLines[2].AxisValue = maxValue; + ((XYDiagram)VChart.Diagram).AxisY.ConstantLines[3].AxisValue = avgValue; + ((XYDiagram)VChart.Diagram).AxisY.ConstantLines[4].AxisValue = minValue; + + //VChart.Legend.Visible = true; + + //VChart.Titles[0].Text = + // String.Format("Voltage Status"); + + //VChart.Invalidate(); + } + catch (Exception) + { + //MsgBox.ErrorShow(ex); + } + + } + private void DisplayCellTemperature() + { + try + { + for (int i = 0; i < seriesTemp.Length; i++) + dtTemp[i].Rows[0]["Value"] = Convert.ToDouble(SystemData[ModuleID - 1].ValueData.CellTemperature[i]) / 10; + + double maxValue = Convert.ToDouble(SystemData[ModuleID - 1].AvgData.maxTemp) / 10; + double avgValue = Convert.ToDouble(SystemData[ModuleID - 1].AvgData.avgTemp) / 10; + double minValue = Convert.ToDouble(SystemData[ModuleID - 1].AvgData.minTemp) / 10; + int maxCno = Convert.ToInt32(SystemData[ModuleID - 1].AvgData.maxTempNum); + int minCno = Convert.ToInt32(SystemData[ModuleID - 1].AvgData.minTempNum); + + ((XYDiagram)TChart.Diagram).AxisY.ConstantLines[2].Name = String.Format(" Max({0:#0.0}C:{1:00})", maxValue, maxCno); + ((XYDiagram)TChart.Diagram).AxisY.ConstantLines[3].Name = String.Format(" Avg({0:#0.0}C)", avgValue); + ((XYDiagram)TChart.Diagram).AxisY.ConstantLines[4].Name = String.Format("Min({0:#0.0}C:{1:00})", minValue, minCno); + + // Define its axis value. + ((XYDiagram)TChart.Diagram).AxisY.ConstantLines[2].AxisValue = maxValue; + ((XYDiagram)TChart.Diagram).AxisY.ConstantLines[3].AxisValue = avgValue; + ((XYDiagram)TChart.Diagram).AxisY.ConstantLines[4].AxisValue = minValue; + + //TChart.Legend.Visible = true; + + //TChart.Titles[0].Text = + // String.Format("Temperature Status"); + } + catch (Exception) + { + //MsgBox.ErrorShow(ex); + } + + } + + private void DisplayStatusStrUart() + { + if (SystemData[ModuleID - 1].CommFail == false) + { + if (SystemData[ModuleID - 1].ShelfCommFail == false) + { + switch ((int)SystemData[ModuleID - 1].StatusData.status) + { + case 0x0000: // Stand by + lbStatus.Text = "STANDBY"; + lbStatus.ForeColor = System.Drawing.Color.Black; + break; + case 0x0001: // Charging + lbStatus.Text = "CHARGING"; + lbStatus.ForeColor = System.Drawing.Color.Blue; + break; + case 0x0002: // Discharging + lbStatus.Text = "DISCHARGING"; + lbStatus.ForeColor = System.Drawing.Color.Magenta; + break; + case 0x0004: // TRIP + if ((SystemData[ModuleID - 1].StatusData.specialAlarm & 0x0001) != 0) + { + lbStatus.Text = "PWR-OFF"; // "ANTI -THEFT (Comm.)"; + lbStatus.ForeColor = Color.Red; + } + else if ((SystemData[ModuleID - 1].StatusData.specialAlarm & 0x0002) != 0) + { + lbStatus.Text = "PWR-OFF"; // "ANTI -THEFT (Gyro)"; + lbStatus.ForeColor = Color.Red; + } + else + { + lbStatus.Text = "TRIP"; + lbStatus.ForeColor = Color.Red; + } + break; + case 0x0008: // Chg-Lmt + lbStatus.Text = "CHG-LIMIT"; + lbStatus.ForeColor = System.Drawing.Color.Blue; + break; + case 0x8000: // Stand by - Heat + lbStatus.Text = "STANDBY-HEAT"; + lbStatus.ForeColor = System.Drawing.Color.Blue; + break; + case 0x8001: // Charging + lbStatus.Text = "CHARGING-HEAT"; + lbStatus.ForeColor = System.Drawing.Color.Blue; + break; + case 0x8002: // Discharging + lbStatus.Text = "DISCHARGING-HEAT"; + lbStatus.ForeColor = System.Drawing.Color.Magenta; + break; + case 0x8004: // TRIP + lbStatus.Text = "TRIP-HEAT"; + lbStatus.ForeColor = System.Drawing.Color.Red; + break; + case 0x8008: // Chg-Lmt + lbStatus.Text = "CHG-LIMIT-HEAT"; + lbStatus.ForeColor = System.Drawing.Color.Blue; + break; + default: + lbStatus.Text = "UNKNOWN"; + lbStatus.ForeColor = System.Drawing.Color.Black; + break; + } + } + else + { + lbStatus.Text = "COMM FAIL"; + lbStatus.ForeColor = System.Drawing.Color.Red; + } + } + else + { + lbStatus.Text = "OFF LINE"; + lbStatus.ForeColor = System.Drawing.Color.Red; + } + } + private void DisplayStatusStrUart124050() + { + if (SystemData[ModuleID - 1].CommFail == false) + { + if (SystemData[ModuleID - 1].ShelfCommFail == false) + { + switch ((int)SystemData[ModuleID - 1].StatusData.status) + { + case 0x0000: // Stand by + lbStatus.Text = "STANDBY"; + lbStatus.ForeColor = System.Drawing.Color.Black; + break; + case 0x0001: // Charging + lbStatus.Text = "CHARGING"; + lbStatus.ForeColor = System.Drawing.Color.Blue; + break; + case 0x0002: // Discharging + lbStatus.Text = "DISCHARGING"; + lbStatus.ForeColor = System.Drawing.Color.Magenta; + break; + case 0x0004: // TRIP + if ((SystemData[ModuleID - 1].StatusData.errorCode & 0x8000) != 0) + { + lbStatus.Text = "PWR-OFF"; // "ANTI -THEFT (Comm.)"; + lbStatus.ForeColor = Color.Red; + } + else if ((SystemData[ModuleID - 1].StatusData.errorCode & 0x4000) != 0) + { + lbStatus.Text = "PWR-OFF"; // "ANTI -THEFT (Gyro)"; + lbStatus.ForeColor = Color.Red; + } + else + { + lbStatus.Text = "TRIP"; + lbStatus.ForeColor = Color.Red; + } + break; + case 0x0008: // Chg-Lmt + lbStatus.Text = "CHG-LIMIT"; + lbStatus.ForeColor = System.Drawing.Color.Blue; + break; + case 0x8000: // Stand by - Heat + lbStatus.Text = "STANDBY-HEAT"; + lbStatus.ForeColor = System.Drawing.Color.Blue; + break; + case 0x8001: // Charging + lbStatus.Text = "CHARGING-HEAT"; + lbStatus.ForeColor = System.Drawing.Color.Blue; + break; + case 0x8002: // Discharging + lbStatus.Text = "DISCHARGING-HEAT"; + lbStatus.ForeColor = System.Drawing.Color.Magenta; + break; + case 0x8004: // TRIP + lbStatus.Text = "TRIP-HEAT"; + lbStatus.ForeColor = System.Drawing.Color.Red; + break; + case 0x8008: // Chg-Lmt + lbStatus.Text = "CHG-LIMIT-HEAT"; + lbStatus.ForeColor = System.Drawing.Color.Blue; + break; + default: + lbStatus.Text = "UNKNOWN"; + lbStatus.ForeColor = System.Drawing.Color.Black; + break; + } + } + else + { + lbStatus.Text = "COMM FAIL"; + lbStatus.ForeColor = System.Drawing.Color.Red; + } + } + else + { + lbStatus.Text = "OFF LINE"; + lbStatus.ForeColor = System.Drawing.Color.Red; + } + } + + private void DisplayAlarmStrUart() + { + if (SystemData[ModuleID - 1].CommFail == false) + { + if (SystemData[ModuleID - 1].ShelfCommFail == false) + { + switch (SystemData[ModuleID - 1].StatusData.batteryStatus) + { + case 0: // NORMAL + if ((SystemData[ModuleID - 1].StatusData.specialAlarm & 0x0001) != 0) + { + lbAlarm.Text = "FAULT (Comm)"; + lbAlarm.ForeColor = Color.Red; + } + else if ((SystemData[ModuleID - 1].StatusData.specialAlarm & 0x0002) != 0) + { + lbAlarm.Text = "FAULT (GyroScope)"; + lbAlarm.ForeColor = Color.Red; + } + else + { + if ((SystemData[ModuleID - 1].StatusData.specialAlarm & 0x0004) != 0) + { + lbAlarm.Text = "WARNING"; + lbAlarm.ForeColor = System.Drawing.Color.Orange; + } + else + { + lbAlarm.Text = "NORMAL"; + lbAlarm.ForeColor = System.Drawing.Color.Green; + } + } + break; + case 1: // WARNING + lbAlarm.Text = "WARNING"; + lbAlarm.ForeColor = System.Drawing.Color.Orange; + break; + case 2: // FAULT + lbAlarm.Text = "FAULT"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + break; + case 3: // WARMING UP + lbAlarm.Text = "WARMING UP"; + lbAlarm.ForeColor = System.Drawing.Color.Black; + break; + case 4: // FAULT (Anti-Theft GyroScope.) + lbAlarm.Text = "FAULT (GyroScope)"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + break; + case 5: // FAULT (Anti-Theft Gyro-Scope) + lbAlarm.Text = "FAULT (Comm)"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + break; + default: + lbAlarm.Text = string.Format("UNKNOWN ({0})", SystemData[ModuleID - 1].StatusData.batteryStatus); + lbAlarm.ForeColor = System.Drawing.Color.Red; + break; + } + } + else + { + lbAlarm.Text = "COMM FAIL"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + } + } + else + { + lbAlarm.Text = "OFF LINE"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + } + } + private void DisplayAlarmStrUart124050() + { + if (SystemData[ModuleID - 1].CommFail == false) + { + if (SystemData[ModuleID - 1].ShelfCommFail == false) + { + switch (SystemData[ModuleID - 1].StatusData.batteryStatus) + { + case 0: // NORMAL + if ((SystemData[ModuleID - 1].StatusData.errorCode & 0x8000) != 0) + { + lbAlarm.Text = "FAULT (Comm)"; + lbAlarm.ForeColor = Color.Red; + } + else if ((SystemData[ModuleID - 1].StatusData.errorCode & 0x4000) != 0) + { + lbAlarm.Text = "FAULT (GyroScope)"; + lbAlarm.ForeColor = Color.Red; + } + else + { + if ((SystemData[ModuleID - 1].StatusData.specialAlarm & 0x4000) != 0) + { + lbAlarm.Text = "WARNING"; + lbAlarm.ForeColor = System.Drawing.Color.Orange; + } + else + { + lbAlarm.Text = "NORMAL"; + lbAlarm.ForeColor = System.Drawing.Color.Green; + } + } + break; + case 1: // WARNING + lbAlarm.Text = "WARNING"; + lbAlarm.ForeColor = System.Drawing.Color.Orange; + break; + case 2: // FAULT + lbAlarm.Text = "FAULT"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + break; + case 3: // WARMING UP + lbAlarm.Text = "WARMING UP"; + lbAlarm.ForeColor = System.Drawing.Color.Black; + break; + case 4: // FAULT (Anti-Theft GyroScope.) + lbAlarm.Text = "FAULT (GyroScope)"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + break; + case 5: // FAULT (Anti-Theft Gyro-Scope) + lbAlarm.Text = "FAULT (Comm)"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + break; + default: + lbAlarm.Text = string.Format("UNKNOWN ({0})", SystemData[ModuleID - 1].StatusData.batteryStatus); + lbAlarm.ForeColor = System.Drawing.Color.Red; + break; + } + } + else + { + lbAlarm.Text = "COMM FAIL"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + } + } + else + { + lbAlarm.Text = "OFF LINE"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + } + } + + private void DisplayStatusStrRs485() + { + if (SystemData[ModuleID - 1].CommFail == false) + { + if (SystemData[ModuleID - 1].ShelfCommFail == false) + { + if ((SystemData[ModuleID - 1].StatusData.batteryStatus == 4) + || (SystemData[ModuleID - 1].StatusData.batteryStatus == 5)) + { + lbStatus.Text = "PWR-OFF"; + lbStatus.ForeColor = Color.Red; + } + else if (SystemData[ModuleID - 1].StatusData.batteryStatus == 2) + { + lbStatus.Text = "TRIP"; + lbStatus.ForeColor = Color.Red; + } + else + { + switch (SystemData[ModuleID - 1].StatusData.status) + { + case 0x0000: // Stand by + lbStatus.Text = "STANDBY"; + lbStatus.ForeColor = Color.Black; + break; + case 0x0001: // Charging + lbStatus.Text = "CHARGING"; + lbStatus.ForeColor = Color.Blue; + break; + case 0x0002: // Discharging + lbStatus.Text = "DISCHARGING"; + lbStatus.ForeColor = Color.Magenta; + break; + case 0x0003: // Float Charging + lbStatus.Text = "FLOATING"; + lbStatus.ForeColor = Color.Black; + break; + case 0x0004: // Warming Up + lbStatus.Text = "WARMING UP"; + lbStatus.ForeColor = Color.Black; + break; + default: + lbStatus.Text = string.Format("UNKNOWN({0})", SystemData[ModuleID - 1].StatusData.status); + lbStatus.ForeColor = Color.Black; + break; + } + } + } + else + { + lbStatus.Text = "COMM FAIL"; + lbStatus.ForeColor = Color.Red; + } + } + else + { + lbStatus.Text = "OFF LINE"; + lbStatus.ForeColor = Color.Red; + } + } + + private void DisplayAlarmStrRs485() + { + if (SystemData[ModuleID - 1].CommFail == false) + { + if (SystemData[ModuleID - 1].ShelfCommFail == false) + { + switch (SystemData[ModuleID - 1].StatusData.batteryStatus) + { + case 0: // NORMAL + lbAlarm.Text = "NORMAL"; + lbAlarm.ForeColor = System.Drawing.Color.Green; + break; + case 1: // WARNING + lbAlarm.Text = "WARNING"; + lbAlarm.ForeColor = System.Drawing.Color.Orange; + break; + case 2: // FAULT + lbAlarm.Text = "FAULT"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + break; + case 3: // WARMING UP + lbAlarm.Text = "WARMING UP"; + lbAlarm.ForeColor = System.Drawing.Color.Black; + break; + case 4: // FAULT (Anti-Theft GyroScope.) + lbAlarm.Text = "FAULT (GyroScope)"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + break; + case 5: // FAULT (Anti-Theft Gyro-Scope) + lbAlarm.Text = "FAULT (Comm)"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + break; + default: + lbAlarm.Text = string.Format("UNKNOWN ({0})", SystemData[ModuleID - 1].StatusData.batteryStatus); + lbAlarm.ForeColor = System.Drawing.Color.Red; + break; + } + } + else + { + lbAlarm.Text = "COMM FAIL"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + } + } + else + { + lbAlarm.Text = "OFF LINE"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + } + } + + private void DisplayStatusStrSnmp() + { + if (SystemData[0].CommFail == false) + { + if (SystemData[0].ShelfCommFail == false) + { + if ((SystemData[0].StatusData.batteryStatus == 4) + || (SystemData[0].StatusData.batteryStatus == 5)) + { + lbStatus.Text = "PWR-OFF"; + lbStatus.ForeColor = Color.Red; + } + else + { + switch (SystemData[0].StatusData.status) + { + case 0x0000: // Stand by + lbStatus.Text = "STANDBY"; + lbStatus.ForeColor = Color.Black; + break; + case 0x0001: // Charging + lbStatus.Text = "CHARGING"; + lbStatus.ForeColor = Color.Blue; + break; + case 0x0002: // Discharging + lbStatus.Text = "DISCHARGING"; + lbStatus.ForeColor = Color.Magenta; + break; + case 0x0004: // PROTECT + lbStatus.Text = "TRIP"; + lbStatus.ForeColor = Color.Red; + break; + case 0x0008: // Charging Lmt + lbStatus.Text = "CHG-LIMIT"; + lbStatus.ForeColor = Color.Blue; + break; + default: + lbStatus.Text = "UNKNOWN"; + lbStatus.ForeColor = Color.Black; + break; + } + } + } + else + { + lbStatus.Text = "COMM FAIL"; + lbStatus.ForeColor = Color.Red; + } + } + else + { + lbStatus.Text = "OFF LINE"; + lbStatus.ForeColor = Color.Red; + } + } + + private void DisplayAlarmStrSnmp() + { + if (SystemData[0].CommFail == false) + { + if (SystemData[0].ShelfCommFail == false) + { + switch (SystemData[0].StatusData.batteryStatus) + { + case 0: // NORMAL + lbAlarm.Text = "NORMAL"; + lbAlarm.ForeColor = System.Drawing.Color.Green; + break; + case 1: // WARNING + lbAlarm.Text = "WARNING"; + lbAlarm.ForeColor = System.Drawing.Color.Orange; + break; + case 2: // FAULT + lbAlarm.Text = "FAULT"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + break; + case 3: // WARMING UP + lbAlarm.Text = "WARMING UP"; + lbAlarm.ForeColor = System.Drawing.Color.Black; + break; + case 4: // FAULT (Anti-Theft GyroScope.) + lbAlarm.Text = "FAULT (GyroScope)"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + break; + case 5: // FAULT (Anti-Theft Gyro-Scope) + lbAlarm.Text = "FAULT (Comm)"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + break; + default: + lbAlarm.Text = string.Format("UNKNOWN ({0})", SystemData[0].StatusData.batteryStatus); + lbAlarm.ForeColor = System.Drawing.Color.Red; + break; + } + } + else + { + lbAlarm.Text = "COMM FAIL"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + } + } + else + { + lbAlarm.Text = "OFF LINE"; + lbAlarm.ForeColor = System.Drawing.Color.Red; + } + } + + private void DisplayAlarmUart() + { + bool[] aFault = csUtils.Int16ToBitArray(SystemData[ModuleID - 1].StatusData.protection); + bool[] aWarining = csUtils.Int16ToBitArray(SystemData[ModuleID - 1].StatusData.warning); + bool aCommfail; + + switch (Config.CommType) + { + case csConstData.CommType.COMM_UART: + aCommfail = SystemData[ModuleID - 1].ShelfCommFail; + break; + case csConstData.CommType.COMM_RS485: + aCommfail = SystemData[ModuleID - 1].ShelfCommFail; + break; + case csConstData.CommType.COMM_SNMP: + aCommfail = SystemData[ModuleID - 1].CommFail; + break; + default: + break; + } + + for (int i = 0; i < 8; i++) + { + if (aFault[i] == true) + alarmTrip[i].SetValue(2); + else if (aWarining[i] == true) + alarmTrip[i].SetValue(1); + else + alarmTrip[i].SetValue(0); + + // Charge Over Current protect + if (i == 6) + { + if ((aFault[i] == true) && (aFault[i])) + alarmTrip[i].SetValue(2); + else if (aWarining[i] == true) + alarmTrip[i].SetValue(1); + else + alarmTrip[i].SetValue(0); + } + } + + // Cell Voltage Difference + if (aFault[9] == true) + { + alarmTrip[9].SetName("Cell Volt Diff"); + alarmTrip[9].SetValue(2); + } + else if (aWarining[9] == true) + { + alarmTrip[9].SetName("Cell Volt Diff"); + alarmTrip[9].SetValue(1); + } + else + { + if ((SystemData[ModuleID - 1].StatusData.specialAlarm & 0x0004) != 0) + { + alarmTrip[9].SetName("CB OFF"); + alarmTrip[9].SetValue(1); + } + else + { + alarmTrip[9].SetName("ETC. Alarm"); + alarmTrip[9].SetValue(0); + } + } + + // Low SOC + if (aWarining[11] == true) + alarmTrip[8].SetValue(1); + else + alarmTrip[8].SetValue(0); + } + + private void DisplayAlarmUart124050() + { + bool[] aFault = csUtils.Int16ToBitArray(SystemData[ModuleID - 1].StatusData.protection); + bool[] aWarining = csUtils.Int16ToBitArray(SystemData[ModuleID - 1].StatusData.warning); + bool aCommfail; + + aCommfail = SystemData[ModuleID - 1].ShelfCommFail; + + for (int i = 0; i < 8; i++) + { + if (aFault[i] == true) + alarmTrip[i].SetValue(2); + else if (aWarining[i] == true) + alarmTrip[i].SetValue(1); + else + alarmTrip[i].SetValue(0); + + // Charge Over Current protect + if (i == 6) + { + if ((aFault[i] == true) && (aFault[i])) + alarmTrip[i].SetValue(2); + else if (aWarining[i] == true) + alarmTrip[i].SetValue(1); + else + alarmTrip[i].SetValue(0); + } + } + + // Cell Voltage Difference + if (aFault[9] == true) + { + alarmTrip[9].SetName("Cell Volt Diff"); + alarmTrip[9].SetValue(2); + } + else if (aWarining[9] == true) + { + alarmTrip[9].SetName("Cell Volt Diff"); + alarmTrip[9].SetValue(1); + } + else + { + if ((SystemData[ModuleID - 1].StatusData.specialAlarm & 0x4000) != 0) + { + alarmTrip[9].SetName("CB OFF"); + alarmTrip[9].SetValue(1); + } + else + { + alarmTrip[9].SetName("ETC. Alarm"); + alarmTrip[9].SetValue(0); + } + } + + // Low SOC + if (aWarining[11] == true) + alarmTrip[8].SetValue(1); + else + alarmTrip[8].SetValue(0); + } + + private void DisplayAlarmRs485() + { + bool[] aFault = csUtils.Int16ToBitArray(SystemData[ModuleID - 1].StatusData.protection); + bool[] aWarining = csUtils.Int16ToBitArray(SystemData[ModuleID - 1].StatusData.warning); + bool aCommfail; + + if (Config.ModuleQty == 1) + { + aCommfail = SystemData[ModuleID - 1].ShelfCommFail; + } + else + { + aCommfail = SystemData[ModuleID - 1].CommFail; + } + + for (int i = 0; i < 8; i++) + { + if (aFault[i] == true) + alarmTrip[i].SetValue(2); + else if (aWarining[i] == true) + alarmTrip[i].SetValue(1); + else + alarmTrip[i].SetValue(0); + + // Charge Over Current protect + if (i == 6) + { + if ((aFault[i] == true) && (aFault[i])) + alarmTrip[i].SetValue(2); + else if (aWarining[i] == true) + alarmTrip[i].SetValue(1); + else + alarmTrip[i].SetValue(0); + } + } + + // Low SOC + if (aWarining[11] == true) + alarmTrip[8].SetValue(1); + else + alarmTrip[8].SetValue(0); + + // Cell Voltage Difference + // Cell ETC. Alarm + if (aFault[8] == true) + { + // Short Circuit Protect + alarmTrip[9].SetName("Short Circuit"); + alarmTrip[9].SetValue(2); + } + else if (aWarining[9] == true) + { + alarmTrip[9].SetName("Cell Volt Diff"); + alarmTrip[9].SetValue(1); + } + else if (aWarining[13] == true) + { + alarmTrip[9].SetName("CB OFF"); + alarmTrip[9].SetValue(1); + } + else if (aWarining[14] == true) + { + alarmTrip[9].SetName("ENV OT"); + alarmTrip[9].SetValue(1); + } + else if (aWarining[15] == true) + { + alarmTrip[9].SetName("ENV UT"); + alarmTrip[9].SetValue(1); + } + else + { + alarmTrip[9].SetName("ETC. Alarm"); + alarmTrip[9].SetValue(0); + } + } + + private void DisplayAlarmSnmp() + { + bool[] aFault = csUtils.Int16ToBitArray(SystemData[0].StatusData.protection); + bool[] aWarining = csUtils.Int16ToBitArray(SystemData[0].StatusData.warning); + bool aCommfail; + + if (Config.CommType == 0) + { + aCommfail = SystemData[0].ShelfCommFail; + } + else + { + aCommfail = SystemData[0].CommFail; + } + + for (int i = 0; i < 8; i++) + { + if (aFault[i] == true) + alarmTrip[i].SetValue(2); + else if (aWarining[i] == true) + alarmTrip[i].SetValue(1); + else + alarmTrip[i].SetValue(0); + + // Charge Over Current protect + if (i == 6) + { + if ((aFault[i] == true) && (aFault[i])) + alarmTrip[i].SetValue(2); + else if (aWarining[i] == true) + alarmTrip[i].SetValue(1); + else + alarmTrip[i].SetValue(0); + } + } + + // Low SOC + if (aWarining[11] == true) { alarmTrip[8].SetValue(1); } + else { alarmTrip[8].SetValue(0); } + + // ETC. Alarm + if (aFault[9] == true) + { + // Short Circuit Protect + alarmTrip[9].SetName("Short Circuit"); + alarmTrip[9].SetValue(2); + } + else if (aWarining[13] == true) + { + // Cell Voltage Diff + alarmTrip[9].SetName("Cell Volt Diff"); + alarmTrip[9].SetValue(1); + } + else if (aWarining[14] == true) + { + // Circuit Breaker Off + alarmTrip[9].SetName("CB OFF"); + alarmTrip[9].SetValue(1); + } + else if (aWarining[8] == true) + { + alarmTrip[9].SetName("ENV OT"); + alarmTrip[9].SetValue(1); + } + else if (aWarining[9] == true) + { + alarmTrip[9].SetName("ENV UT"); + alarmTrip[9].SetValue(1); + } + else + { + alarmTrip[9].SetName("ETC. Alarm"); + alarmTrip[9].SetValue(0); + } + } + + #endregion + + #region BUTTON EVENT + + private void btnParam_Click(object sender, EventArgs e) + { + switch (Config.CommType) + { + case csConstData.CommType.COMM_UART: + foreach (Form frm in Application.OpenForms) + { + if (frm.Name == "fmxParamConfig") + { + frm.Activate(); + return; + } + } + fmxParamConfig ParamConfigForm = new fmxParamConfig(ModuleID, Config, SystemData[ModuleID - 1].ParamData); + + ParamConfigForm.OnUpdate += UpdateParam; + ParamConfigForm.OnCommand += ParamSetCmd; + ParamConfigForm.Show(); + break; + case csConstData.CommType.COMM_RS485: + FmxInformation InformationForm1 = new FmxInformation(ModuleID, Config, ref SystemData[ModuleID - 1]); + + InformationForm1.ShowDialog(); + break; + case csConstData.CommType.COMM_SNMP: + FmxInformation InformationForm2 = new FmxInformation(ModuleID, Config, ref SystemData[ModuleID - 1]); + + InformationForm2.ShowDialog(); + break; + default: + break; + } + } + + private void btnCalibration_Click(object sender, EventArgs e) + { + switch (Config.CommType) + { + case csConstData.CommType.COMM_UART: + fmxCalibration CalibrationForm = + new fmxCalibration(ModuleID, Config, SystemData[ModuleID - 1].ParamData, SystemData[ModuleID - 1].CalibrationData); + + CalibrationForm.OnUpdate += UpdateCalibration; + CalibrationForm.OnCommand += ParamSetCmd; + CalibrationForm.ShowDialog(); + break; + case csConstData.CommType.COMM_RS485: + fmxAntiTheft AntiTheftForm = new fmxAntiTheft(ModuleID, SystemData[ModuleID - 1].CalibrationData); + + AntiTheftForm.OnUpdate += UpdateCalibrationRS485; + AntiTheftForm.OnCommand += AntiTheftSetCmd; // OnSendUartData + AntiTheftForm.OnSendUartData += OnSendUartData; + AntiTheftForm.ShowDialog(); + break; + case csConstData.CommType.COMM_SNMP: + break; + } + } + + #endregion + + #region CONTROL EVENT FUNCTION + + private void UpdateParam(object sendor) + { + ((fmxParamConfig)sendor).UpdateData(SystemData[ModuleID - 1].ParamData, SystemData[ModuleID - 1].CalibrationData); + } + + private void UpdateCalibration(object sendor) + { + ((fmxCalibration)sendor).UpdateData(SystemData[ModuleID - 1].ParamData, SystemData[ModuleID - 1].CalibrationData, SystemData[ModuleID - 1]); + } + + private void UpdateCalibrationRS485(object sendor) + { + ((fmxAntiTheft)sendor).UpdateData(SystemData[ModuleID - 1].ParamData, SystemData[ModuleID - 1].CalibrationData, SystemData[ModuleID - 1]); + } + + private void ParamSetCmd(int mID, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib) + { + OnCommand?.Invoke(mID, mode, index, flag, ref aParam, ref aCalib); + } + + // RS485 Control Function + private void AntiTheftSetCmd(int mID, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib) + { + OnCommand?.Invoke(mID, mode, index, flag, ref aParam, ref aCalib); + } + + #endregion + } +} diff --git a/LFP_Manager/Controls/ucShelfStatus.resx b/LFP_Manager/Controls/ucShelfStatus.resx new file mode 100644 index 0000000..9427740 --- /dev/null +++ b/LFP_Manager/Controls/ucShelfStatus.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + 17, 17 + + \ No newline at end of file diff --git a/LFP_Manager/Controls/ucStatus.Designer.cs b/LFP_Manager/Controls/ucStatus.Designer.cs new file mode 100644 index 0000000..df7f47b --- /dev/null +++ b/LFP_Manager/Controls/ucStatus.Designer.cs @@ -0,0 +1,188 @@ +namespace LFP_Manager.Controls +{ + partial class ucStatus + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.pcStatus = new DevExpress.XtraEditors.PanelControl(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl(); + this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.lcStatus = new DevExpress.XtraEditors.LabelControl(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pcStatus)).BeginInit(); + this.pcStatus.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit(); + this.layoutControl2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(236)))), ((int)(((byte)(239))))); + this.layoutControl1.Controls.Add(this.pcStatus); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(717, 178, 250, 350); + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(147, 27); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem1}); + this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup1.Name = "Root"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + this.layoutControlGroup1.Size = new System.Drawing.Size(147, 27); + this.layoutControlGroup1.Text = "Root"; + this.layoutControlGroup1.TextVisible = false; + // + // pcStatus + // + this.pcStatus.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Style3D; + this.pcStatus.Controls.Add(this.layoutControl2); + this.pcStatus.Location = new System.Drawing.Point(1, 1); + this.pcStatus.Margin = new System.Windows.Forms.Padding(0); + this.pcStatus.Name = "pcStatus"; + this.pcStatus.Size = new System.Drawing.Size(145, 25); + this.pcStatus.TabIndex = 4; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.pcStatus; + this.layoutControlItem1.CustomizationFormText = "layoutControlItem1"; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlItem1.Size = new System.Drawing.Size(147, 27); + this.layoutControlItem1.Text = "layoutControlItem1"; + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextToControlDistance = 0; + this.layoutControlItem1.TextVisible = false; + // + // layoutControl2 + // + this.layoutControl2.Controls.Add(this.lcStatus); + this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl2.Location = new System.Drawing.Point(2, 2); + this.layoutControl2.Name = "layoutControl2"; + this.layoutControl2.Padding = new System.Windows.Forms.Padding(1); + this.layoutControl2.Root = this.layoutControlGroup2; + this.layoutControl2.Size = new System.Drawing.Size(141, 21); + this.layoutControl2.TabIndex = 0; + this.layoutControl2.Text = "layoutControl2"; + // + // layoutControlGroup2 + // + this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2"; + this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup2.GroupBordersVisible = false; + this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem2}); + this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup2.Name = "layoutControlGroup2"; + this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup2.Size = new System.Drawing.Size(141, 21); + this.layoutControlGroup2.Text = "layoutControlGroup2"; + this.layoutControlGroup2.TextVisible = false; + // + // lcStatus + // + this.lcStatus.Appearance.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lcStatus.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lcStatus.Location = new System.Drawing.Point(2, 2); + this.lcStatus.Name = "lcStatus"; + this.lcStatus.Size = new System.Drawing.Size(137, 17); + this.lcStatus.StyleController = this.layoutControl2; + this.lcStatus.TabIndex = 4; + this.lcStatus.Text = "labelControl1"; + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.lcStatus; + this.layoutControlItem2.CustomizationFormText = "layoutControlItem2"; + this.layoutControlItem2.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem2.MinSize = new System.Drawing.Size(74, 18); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlItem2.Size = new System.Drawing.Size(139, 19); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.Text = "layoutControlItem2"; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextToControlDistance = 0; + this.layoutControlItem2.TextVisible = false; + // + // ucStatus + // + this.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(235)))), ((int)(((byte)(236)))), ((int)(((byte)(239))))); + this.Appearance.Options.UseBackColor = true; + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.layoutControl1); + this.MinimumSize = new System.Drawing.Size(0, 27); + this.Name = "ucStatus"; + this.Size = new System.Drawing.Size(147, 27); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pcStatus)).EndInit(); + this.pcStatus.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit(); + this.layoutControl2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraEditors.PanelControl pcStatus; + private DevExpress.XtraLayout.LayoutControl layoutControl2; + private DevExpress.XtraEditors.LabelControl lcStatus; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + } +} diff --git a/LFP_Manager/Controls/ucStatus.cs b/LFP_Manager/Controls/ucStatus.cs new file mode 100644 index 0000000..8febe9c --- /dev/null +++ b/LFP_Manager/Controls/ucStatus.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Linq; +using System.Windows.Forms; +using DevExpress.XtraEditors; + +namespace LFP_Manager.Controls +{ + public partial class ucStatus : DevExpress.XtraEditors.XtraUserControl + { + public ucStatus() + { + InitializeComponent(); + } + + public void SetName(string name) + { + lcStatus.Text = " " + name + " "; + } + + public void SetTextWidth(int width) + { + lcStatus.Size = new System.Drawing.Size(width, 14); + } + + public void SetValue(int nValue) + { + switch (nValue) + { + case 0: + pcStatus.BackColor = System.Drawing.Color.Green; + lcStatus.ForeColor = System.Drawing.Color.White; + break; + case 1: + pcStatus.BackColor = System.Drawing.Color.Orange; + lcStatus.ForeColor = System.Drawing.Color.Black; + break; + case 2: + pcStatus.BackColor = System.Drawing.Color.Red; + lcStatus.ForeColor = System.Drawing.Color.White; + break; + } + } + } +} diff --git a/LFP_Manager/Controls/ucStatus.resx b/LFP_Manager/Controls/ucStatus.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/LFP_Manager/Controls/ucStatus.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LFP_Manager/Controls/ucTargetControl.Designer.cs b/LFP_Manager/Controls/ucTargetControl.Designer.cs new file mode 100644 index 0000000..3fd6f85 --- /dev/null +++ b/LFP_Manager/Controls/ucTargetControl.Designer.cs @@ -0,0 +1,298 @@ +namespace LFP_Manager.Controls +{ + partial class ucTargetControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.gcTargetConfig = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl(); + this.lbStatus = new DevExpress.XtraEditors.LabelControl(); + this.lbTargetInfo = new DevExpress.XtraEditors.LabelControl(); + this.btnConfig = new DevExpress.XtraEditors.SimpleButton(); + this.btnStart = new DevExpress.XtraEditors.SimpleButton(); + this.lbTarget = new DevExpress.XtraEditors.LabelControl(); + this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.gcTargetConfig)).BeginInit(); + this.gcTargetConfig.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit(); + this.layoutControl2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.AllowCustomization = false; + this.layoutControl1.Controls.Add(this.gcTargetConfig); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(803, 61); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // gcTargetConfig + // + this.gcTargetConfig.Controls.Add(this.layoutControl2); + this.gcTargetConfig.Location = new System.Drawing.Point(3, 3); + this.gcTargetConfig.Name = "gcTargetConfig"; + this.gcTargetConfig.Size = new System.Drawing.Size(797, 55); + this.gcTargetConfig.TabIndex = 6; + this.gcTargetConfig.Text = "Target Config"; + // + // layoutControl2 + // + this.layoutControl2.AllowCustomization = false; + this.layoutControl2.Controls.Add(this.lbStatus); + this.layoutControl2.Controls.Add(this.lbTargetInfo); + this.layoutControl2.Controls.Add(this.btnConfig); + this.layoutControl2.Controls.Add(this.btnStart); + this.layoutControl2.Controls.Add(this.lbTarget); + this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl2.Location = new System.Drawing.Point(2, 23); + this.layoutControl2.Name = "layoutControl2"; + this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(932, 307, 250, 350); + this.layoutControl2.Root = this.layoutControlGroup2; + this.layoutControl2.Size = new System.Drawing.Size(793, 30); + this.layoutControl2.TabIndex = 0; + this.layoutControl2.Text = "layoutControl2"; + // + // lbStatus + // + this.lbStatus.Appearance.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbStatus.Appearance.Options.UseFont = true; + this.lbStatus.Appearance.Options.UseTextOptions = true; + this.lbStatus.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lbStatus.Location = new System.Drawing.Point(526, 4); + this.lbStatus.Name = "lbStatus"; + this.lbStatus.Size = new System.Drawing.Size(77, 22); + this.lbStatus.StyleController = this.layoutControl2; + this.lbStatus.TabIndex = 9; + this.lbStatus.Text = "STOP"; + // + // lbTargetInfo + // + this.lbTargetInfo.Appearance.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbTargetInfo.Appearance.Options.UseFont = true; + this.lbTargetInfo.Location = new System.Drawing.Point(78, 4); + this.lbTargetInfo.Name = "lbTargetInfo"; + this.lbTargetInfo.Size = new System.Drawing.Size(444, 22); + this.lbTargetInfo.StyleController = this.layoutControl2; + this.lbTargetInfo.TabIndex = 8; + // + // btnConfig + // + this.btnConfig.Location = new System.Drawing.Point(607, 4); + this.btnConfig.Name = "btnConfig"; + this.btnConfig.Size = new System.Drawing.Size(89, 22); + this.btnConfig.StyleController = this.layoutControl2; + this.btnConfig.TabIndex = 7; + this.btnConfig.Text = "CONFIG"; + this.btnConfig.Click += new System.EventHandler(this.btnConfig_Click); + // + // btnStart + // + this.btnStart.Location = new System.Drawing.Point(700, 4); + this.btnStart.Name = "btnStart"; + this.btnStart.Size = new System.Drawing.Size(89, 22); + this.btnStart.StyleController = this.layoutControl2; + this.btnStart.TabIndex = 6; + this.btnStart.Text = "START"; + this.btnStart.Click += new System.EventHandler(this.btnStart_Click); + // + // lbTarget + // + this.lbTarget.Appearance.Options.UseTextOptions = true; + this.lbTarget.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lbTarget.Location = new System.Drawing.Point(4, 4); + this.lbTarget.Name = "lbTarget"; + this.lbTarget.Size = new System.Drawing.Size(70, 22); + this.lbTarget.StyleController = this.layoutControl2; + this.lbTarget.TabIndex = 4; + this.lbTarget.Text = "Target"; + // + // layoutControlGroup2 + // + this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup2.GroupBordersVisible = false; + this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem2, + this.layoutControlItem4, + this.layoutControlItem3, + this.layoutControlItem5, + this.layoutControlItem6}); + this.layoutControlGroup2.Name = "Root"; + this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2); + this.layoutControlGroup2.Size = new System.Drawing.Size(793, 30); + this.layoutControlGroup2.TextVisible = false; + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.lbTarget; + this.layoutControlItem2.CustomizationFormText = "layoutControlItem2"; + this.layoutControlItem2.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem2.MaxSize = new System.Drawing.Size(74, 0); + this.layoutControlItem2.MinSize = new System.Drawing.Size(74, 18); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(74, 26); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // layoutControlItem4 + // + this.layoutControlItem4.Control = this.btnStart; + this.layoutControlItem4.CustomizationFormText = "layoutControlItem4"; + this.layoutControlItem4.Location = new System.Drawing.Point(696, 0); + this.layoutControlItem4.MinSize = new System.Drawing.Size(53, 26); + this.layoutControlItem4.Name = "layoutControlItem4"; + this.layoutControlItem4.Size = new System.Drawing.Size(93, 26); + this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem4.TextVisible = false; + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.btnConfig; + this.layoutControlItem3.CustomizationFormText = "layoutControlItem3"; + this.layoutControlItem3.Location = new System.Drawing.Point(603, 0); + this.layoutControlItem3.MinSize = new System.Drawing.Size(57, 26); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(93, 26); + this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextVisible = false; + // + // layoutControlItem5 + // + this.layoutControlItem5.Control = this.lbTargetInfo; + this.layoutControlItem5.CustomizationFormText = "layoutControlItem5"; + this.layoutControlItem5.Location = new System.Drawing.Point(74, 0); + this.layoutControlItem5.MinSize = new System.Drawing.Size(74, 18); + this.layoutControlItem5.Name = "layoutControlItem5"; + this.layoutControlItem5.Size = new System.Drawing.Size(448, 26); + this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem5.TextVisible = false; + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.lbStatus; + this.layoutControlItem6.CustomizationFormText = "layoutControlItem6"; + this.layoutControlItem6.Location = new System.Drawing.Point(522, 0); + this.layoutControlItem6.MinSize = new System.Drawing.Size(74, 18); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(81, 26); + this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem6.TextVisible = false; + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem1}); + this.layoutControlGroup1.Name = "layoutControlGroup1"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup1.Size = new System.Drawing.Size(803, 61); + this.layoutControlGroup1.TextVisible = false; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.gcTargetConfig; + this.layoutControlItem1.CustomizationFormText = "layoutControlItem1"; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(801, 59); + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // ucTargetControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.layoutControl1); + this.Name = "ucTargetControl"; + this.Size = new System.Drawing.Size(803, 61); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.gcTargetConfig)).EndInit(); + this.gcTargetConfig.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit(); + this.layoutControl2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraEditors.GroupControl gcTargetConfig; + private DevExpress.XtraLayout.LayoutControl layoutControl2; + private DevExpress.XtraEditors.LabelControl lbTargetInfo; + private DevExpress.XtraEditors.SimpleButton btnConfig; + private DevExpress.XtraEditors.SimpleButton btnStart; + private DevExpress.XtraEditors.LabelControl lbTarget; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraEditors.LabelControl lbStatus; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + } +} diff --git a/LFP_Manager/Controls/ucTargetControl.cs b/LFP_Manager/Controls/ucTargetControl.cs new file mode 100644 index 0000000..c26f9c9 --- /dev/null +++ b/LFP_Manager/Controls/ucTargetControl.cs @@ -0,0 +1,119 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Linq; +using System.Windows.Forms; +using DevExpress.XtraEditors; + +using LFP_Manager.Forms; +using LFP_Manager.DataStructure; +using LFP_Manager.Function; + +namespace LFP_Manager.Controls +{ + public partial class ucTargetControl : DevExpress.XtraEditors.XtraUserControl + { + public delegate void ButtonEvent(object sender, EventArgs e); + + #region VARIABLES + + public event ButtonEvent OnConfig = null; + public event ButtonEvent OnStart = null; + + #endregion + + #region CONSTRUCTORS + + public ucTargetControl() + { + InitializeComponent(); + + lbStatus.Appearance.ForeColor = System.Drawing.Color.Red; + } + + #endregion + + #region UPDATE DATA + + public void UpdateConfig(ref CommConfig Config) + { + string info = ""; + + switch (Config.CommType) + { + case csConstData.CommType.COMM_UART: + if (Config.UartModelIndex >= csConstData.MODEL_STR.Length) + { + Config.UartModelIndex = 0; + } + info = String.Format("INTERFACE: RS-232 - {0}, MODEL: {1}" //, M-QTY: {2}, PROTOCOL: {2}" + , Config.UartPort + , csConstData.MODEL_STR[Config.UartModelIndex] + ); + break; + case csConstData.CommType.COMM_RS485: + if (Config.UartModelIndex >= csConstData.MODEL_STR.Length) + { + Config.UartModelIndex = 0; + } + info = String.Format("INTERFACE: RS-485 - {0}, MODEL: {1}" //, M-QTY: {2}, PROTOCOL: {2}" + , Config.UartPort + , csConstData.MODEL_STR[Config.UartModelIndex] + ); + break; + case csConstData.CommType.COMM_SNMP: + if (Config.SnmpModelIndex >= csConstData.MODEL_STR.Length) + { + Config.SnmpModelIndex = 0; + } + info = String.Format("INTERFACE: SNMP - {0}, MODEL: {1}" //, M-QTY: {2}, PROTOCOL: {2}" + , Config.SnmpIP + , csConstData.MODEL_STR[Config.SnmpModelIndex] + ); + break; + default: + break; + } + + lbTargetInfo.Text = info; + } + + public void UpdateStatus(bool flag) + { + if (flag) + { + btnConfig.Enabled = false; + btnStart.Text = "STOP"; + + lbStatus.Text = "RUN"; + lbStatus.Appearance.ForeColor = System.Drawing.Color.Blue; + } + else + { + btnConfig.Enabled = true; + btnStart.Text = "START"; + + lbStatus.Text = "STOP"; + lbStatus.Appearance.ForeColor = System.Drawing.Color.Red; + } + } + #endregion + + #region BUTTON EVENT + + private void btnConfig_Click(object sender, EventArgs e) + { + OnConfig?.Invoke(sender, e); + } + + private void btnStart_Click(object sender, EventArgs e) + { + OnStart?.Invoke(sender, e); + } + + #endregion + } +} diff --git a/LFP_Manager/Controls/ucTargetControl.resx b/LFP_Manager/Controls/ucTargetControl.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/LFP_Manager/Controls/ucTargetControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LFP_Manager/Controls/ucTftpClientcs.Designer.cs b/LFP_Manager/Controls/ucTftpClientcs.Designer.cs new file mode 100644 index 0000000..a829d32 --- /dev/null +++ b/LFP_Manager/Controls/ucTftpClientcs.Designer.cs @@ -0,0 +1,386 @@ +namespace LFP_Manager.Controls +{ + partial class ucTftpClientcs + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.groupFwUpdate = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.btnSystemReset = new DevExpress.XtraEditors.SimpleButton(); + this.btnReset = new DevExpress.XtraEditors.SimpleButton(); + this.btnDownload = new DevExpress.XtraEditors.SimpleButton(); + this.lbDownloadStatus = new DevExpress.XtraEditors.LabelControl(); + this.btnFindFile = new DevExpress.XtraEditors.SimpleButton(); + this.teFilename = new DevExpress.XtraEditors.TextEdit(); + this.progressDownload = new DevExpress.XtraEditors.ProgressBarControl(); + this.lbFilename = new DevExpress.XtraEditors.LabelControl(); + this.lbDeviceInfo = new DevExpress.XtraEditors.LabelControl(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem(); + ((System.ComponentModel.ISupportInitialize)(this.groupFwUpdate)).BeginInit(); + this.groupFwUpdate.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.teFilename.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.progressDownload.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit(); + this.SuspendLayout(); + // + // groupFwUpdate + // + this.groupFwUpdate.Controls.Add(this.layoutControl1); + this.groupFwUpdate.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupFwUpdate.Location = new System.Drawing.Point(0, 0); + this.groupFwUpdate.Name = "groupFwUpdate"; + this.groupFwUpdate.Size = new System.Drawing.Size(462, 242); + this.groupFwUpdate.TabIndex = 0; + this.groupFwUpdate.Text = "Firmware Update"; + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.btnSystemReset); + this.layoutControl1.Controls.Add(this.btnReset); + this.layoutControl1.Controls.Add(this.btnDownload); + this.layoutControl1.Controls.Add(this.lbDownloadStatus); + this.layoutControl1.Controls.Add(this.btnFindFile); + this.layoutControl1.Controls.Add(this.teFilename); + this.layoutControl1.Controls.Add(this.progressDownload); + this.layoutControl1.Controls.Add(this.lbFilename); + this.layoutControl1.Controls.Add(this.lbDeviceInfo); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(2, 23); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(756, 30, 250, 350); + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(458, 217); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // btnSystemReset + // + this.btnSystemReset.Location = new System.Drawing.Point(3, 185); + this.btnSystemReset.Name = "btnSystemReset"; + this.btnSystemReset.Size = new System.Drawing.Size(140, 29); + this.btnSystemReset.StyleController = this.layoutControl1; + this.btnSystemReset.TabIndex = 14; + this.btnSystemReset.Text = "System Reset"; + this.btnSystemReset.Click += new System.EventHandler(this.btnLcdHistoryDelete_Click); + // + // btnReset + // + this.btnReset.Location = new System.Drawing.Point(354, 185); + this.btnReset.Name = "btnReset"; + this.btnReset.Size = new System.Drawing.Size(101, 29); + this.btnReset.StyleController = this.layoutControl1; + this.btnReset.TabIndex = 13; + this.btnReset.Text = "RBMS Reset"; + this.btnReset.Click += new System.EventHandler(this.btnReset_Click); + // + // btnDownload + // + this.btnDownload.Enabled = false; + this.btnDownload.Location = new System.Drawing.Point(366, 35); + this.btnDownload.Name = "btnDownload"; + this.btnDownload.Size = new System.Drawing.Size(89, 22); + this.btnDownload.StyleController = this.layoutControl1; + this.btnDownload.TabIndex = 12; + this.btnDownload.Text = "Update"; + this.btnDownload.Click += new System.EventHandler(this.btnDownload_Click); + // + // lbDownloadStatus + // + this.lbDownloadStatus.Appearance.Options.UseTextOptions = true; + this.lbDownloadStatus.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.lbDownloadStatus.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None; + this.lbDownloadStatus.Location = new System.Drawing.Point(3, 102); + this.lbDownloadStatus.Name = "lbDownloadStatus"; + this.lbDownloadStatus.Size = new System.Drawing.Size(452, 79); + this.lbDownloadStatus.StyleController = this.layoutControl1; + this.lbDownloadStatus.TabIndex = 9; + this.lbDownloadStatus.Text = "None"; + // + // btnFindFile + // + this.btnFindFile.Location = new System.Drawing.Point(273, 35); + this.btnFindFile.Name = "btnFindFile"; + this.btnFindFile.Size = new System.Drawing.Size(89, 22); + this.btnFindFile.StyleController = this.layoutControl1; + this.btnFindFile.TabIndex = 8; + this.btnFindFile.Text = "Find..."; + this.btnFindFile.Click += new System.EventHandler(this.btnFindFile_Click); + // + // teFilename + // + this.teFilename.Location = new System.Drawing.Point(105, 35); + this.teFilename.Name = "teFilename"; + this.teFilename.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.teFilename.Properties.Appearance.Options.UseFont = true; + this.teFilename.Size = new System.Drawing.Size(164, 22); + this.teFilename.StyleController = this.layoutControl1; + this.teFilename.TabIndex = 7; + // + // progressDownload + // + this.progressDownload.Location = new System.Drawing.Point(3, 61); + this.progressDownload.Name = "progressDownload"; + this.progressDownload.Size = new System.Drawing.Size(452, 37); + this.progressDownload.StyleController = this.layoutControl1; + this.progressDownload.TabIndex = 6; + // + // lbFilename + // + this.lbFilename.Location = new System.Drawing.Point(3, 35); + this.lbFilename.Name = "lbFilename"; + this.lbFilename.Size = new System.Drawing.Size(98, 22); + this.lbFilename.StyleController = this.layoutControl1; + this.lbFilename.TabIndex = 5; + this.lbFilename.Text = " Filename"; + // + // lbDeviceInfo + // + this.lbDeviceInfo.Location = new System.Drawing.Point(3, 3); + this.lbDeviceInfo.Name = "lbDeviceInfo"; + this.lbDeviceInfo.Size = new System.Drawing.Size(452, 28); + this.lbDeviceInfo.StyleController = this.layoutControl1; + this.lbDeviceInfo.TabIndex = 4; + this.lbDeviceInfo.Text = " Device Information"; + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem1, + this.layoutControlItem2, + this.layoutControlItem3, + this.emptySpaceItem1, + this.layoutControlItem4, + this.layoutControlItem5, + this.layoutControlItem6, + this.layoutControlItem9, + this.layoutControlItem7, + this.layoutControlItem8}); + this.layoutControlGroup1.Name = "layoutControlGroup1"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup1.Size = new System.Drawing.Size(458, 217); + this.layoutControlGroup1.TextVisible = false; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.lbDeviceInfo; + this.layoutControlItem1.CustomizationFormText = "layoutControlItem1"; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.MinSize = new System.Drawing.Size(74, 18); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(456, 32); + this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.lbFilename; + this.layoutControlItem2.CustomizationFormText = "layoutControlItem2"; + this.layoutControlItem2.Location = new System.Drawing.Point(0, 32); + this.layoutControlItem2.MaxSize = new System.Drawing.Size(102, 0); + this.layoutControlItem2.MinSize = new System.Drawing.Size(102, 18); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(102, 26); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.progressDownload; + this.layoutControlItem3.CustomizationFormText = "layoutControlItem3"; + this.layoutControlItem3.Location = new System.Drawing.Point(0, 58); + this.layoutControlItem3.MinSize = new System.Drawing.Size(54, 16); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(456, 41); + this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1"; + this.emptySpaceItem1.Location = new System.Drawing.Point(144, 182); + this.emptySpaceItem1.MinSize = new System.Drawing.Size(104, 24); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(207, 33); + this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem4 + // + this.layoutControlItem4.Control = this.teFilename; + this.layoutControlItem4.CustomizationFormText = "layoutControlItem4"; + this.layoutControlItem4.Location = new System.Drawing.Point(102, 32); + this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 26); + this.layoutControlItem4.MinSize = new System.Drawing.Size(54, 26); + this.layoutControlItem4.Name = "layoutControlItem4"; + this.layoutControlItem4.Size = new System.Drawing.Size(168, 26); + this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem4.TextVisible = false; + // + // layoutControlItem5 + // + this.layoutControlItem5.Control = this.btnFindFile; + this.layoutControlItem5.CustomizationFormText = "layoutControlItem5"; + this.layoutControlItem5.Location = new System.Drawing.Point(270, 32); + this.layoutControlItem5.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem5.Name = "layoutControlItem5"; + this.layoutControlItem5.Size = new System.Drawing.Size(93, 26); + this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem5.TextVisible = false; + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.lbDownloadStatus; + this.layoutControlItem6.CustomizationFormText = "layoutControlItem6"; + this.layoutControlItem6.Location = new System.Drawing.Point(0, 99); + this.layoutControlItem6.MinSize = new System.Drawing.Size(74, 18); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(456, 83); + this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem6.TextVisible = false; + // + // layoutControlItem9 + // + this.layoutControlItem9.Control = this.btnDownload; + this.layoutControlItem9.CustomizationFormText = "layoutControlItem9"; + this.layoutControlItem9.Location = new System.Drawing.Point(363, 32); + this.layoutControlItem9.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem9.Name = "layoutControlItem9"; + this.layoutControlItem9.Size = new System.Drawing.Size(93, 26); + this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem9.TextVisible = false; + // + // layoutControlItem7 + // + this.layoutControlItem7.Control = this.btnReset; + this.layoutControlItem7.CustomizationFormText = "layoutControlItem7"; + this.layoutControlItem7.Location = new System.Drawing.Point(351, 182); + this.layoutControlItem7.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem7.Name = "layoutControlItem7"; + this.layoutControlItem7.Size = new System.Drawing.Size(105, 33); + this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem7.TextVisible = false; + // + // layoutControlItem8 + // + this.layoutControlItem8.Control = this.btnSystemReset; + this.layoutControlItem8.CustomizationFormText = "layoutControlItem8"; + this.layoutControlItem8.Location = new System.Drawing.Point(0, 182); + this.layoutControlItem8.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem8.Name = "layoutControlItem8"; + this.layoutControlItem8.Size = new System.Drawing.Size(144, 33); + this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem8.TextVisible = false; + // + // ucTftpClientcs + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.groupFwUpdate); + this.Name = "ucTftpClientcs"; + this.Size = new System.Drawing.Size(462, 242); + ((System.ComponentModel.ISupportInitialize)(this.groupFwUpdate)).EndInit(); + this.groupFwUpdate.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.teFilename.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.progressDownload.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraEditors.GroupControl groupFwUpdate; + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraEditors.SimpleButton btnFindFile; + private DevExpress.XtraEditors.TextEdit teFilename; + private DevExpress.XtraEditors.ProgressBarControl progressDownload; + private DevExpress.XtraEditors.LabelControl lbFilename; + private DevExpress.XtraEditors.LabelControl lbDeviceInfo; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraEditors.LabelControl lbDownloadStatus; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private DevExpress.XtraEditors.SimpleButton btnDownload; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9; + private DevExpress.XtraEditors.SimpleButton btnReset; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7; + private DevExpress.XtraEditors.SimpleButton btnSystemReset; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8; + } +} diff --git a/LFP_Manager/Controls/ucTftpClientcs.cs b/LFP_Manager/Controls/ucTftpClientcs.cs new file mode 100644 index 0000000..a5c1c19 --- /dev/null +++ b/LFP_Manager/Controls/ucTftpClientcs.cs @@ -0,0 +1,256 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Linq; +using System.Windows.Forms; +using DevExpress.XtraEditors; + +using System.Threading; +using System.Net; +using System.IO; +using Tftp.Net; + +using LFP_Manager.Utils; +using LFP_Manager.DataStructure; + +namespace LFP_Manager.Controls +{ + public delegate void ResetEvent(object sender, int mode, UInt32 value); + + public partial class ucTftpClientcs : DevExpress.XtraEditors.XtraUserControl + { + #region CONST + + const string BMCB_FILE_NAME = "App.bin"; + const string mBMS_FILE_NAME = "mBMS_APP_DL.bin"; + + #endregion + + #region VARIABLES + + int ID = 0; + string hostIP = ""; + byte[] RbmsVersion; + string TarGetFileName = ""; + + int transferedBytes = 0; + + public event ResetEvent OnReset = null; + + #endregion + + #region CONSTRUCTOR + + public ucTftpClientcs() + { + InitializeComponent(); + + TarGetFileName = "APP.BIN"; + } + + #endregion + + #region RESET EVENT + + private void OnResetEvent(object sender, int mode, UInt16 value) + { + if (OnReset != null) + { + OnReset(sender, mode, value); + } + } + + #endregion + + #region INFORMATION UPDATE + + public void UpdateInfor(int sid, string IpAddr, byte[] fwVersion) + { + ID = sid; + hostIP = IpAddr; + RbmsVersion = fwVersion; + + lbDeviceInfo.Text = String.Format(" RBMS ID: {0} IP: {1}" + , sid + 1 + , hostIP + ); + } + + #endregion + + #region TFTP FUNCTION + + public void FwDownload(string host, string filename) + { + //Setup a TftpClient instance + TftpClient client = new TftpClient(host); + ITftpTransfer transfer = client.Upload(TarGetFileName); + + transfer.RetryTimeout = TimeSpan.FromMilliseconds(500); + transfer.RetryCount = 3; + transfer.TransferMode = TftpTransferMode.octet; + + //Capture the events that may happen during the transfer + transfer.OnProgress += new TftpProgressHandler(transfer_OnProgress); + transfer.OnFinished += new TftpEventHandler(transfer_OnFinshed); + transfer.OnError += new TftpErrorHandler(transfer_OnError); + + //Start the transfer and write the data that we're downloading into a memory stream + FileStream upLoadFile = new FileStream(teFilename.Text, FileMode.Open); + progressDownload.Properties.Maximum = (int)(upLoadFile.Length / 1024); + transfer.Start(upLoadFile); + } + + void transfer_OnProgress(ITftpTransfer transfer, TftpTransferProgress progress) + { + string msg = String.Format("Transfer running. Progress: " + progress); + transferedBytes = progress.TransferredBytes / 1024; + + TftpMsgProcess(msg, 0); + } + + void transfer_OnError(ITftpTransfer transfer, TftpTransferError error) + { + string msg = String.Format("Transfer failed: " + error); + + TftpMsgProcess(msg, 2); + } + + void transfer_OnFinshed(ITftpTransfer transfer) + { + string msg = String.Format("Transfer succeeded."); + + TftpMsgProcess(msg, 1); + } + + private void TftpMsgProcess(string msg, int msgType) + { + if (this.InvokeRequired) + { + this.Invoke(new MethodInvoker(delegate() + { + lbDownloadStatus.Text = msg; + if (msgType == 0) + { + // transfer progress + progressDownload.Position = transferedBytes; + } + else if (msgType == 1) + { + progressDownload.Position = transferedBytes; + MessageBox.Show(msg, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else if (msgType == 2) + { + MessageBox.Show(msg, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + })); + } + else + { + lbDownloadStatus.Text = msg; + if (msgType == 0) + { + // transfer progress + progressDownload.Position = transferedBytes; + } + else if (msgType == 1) + { + progressDownload.Position = transferedBytes; + MessageBox.Show(msg, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else if (msgType == 2) + { + MessageBox.Show(msg, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + + #endregion + + #region BUTTON EVENT + + private void btnFindFile_Click(object sender, EventArgs e) + { + OpenFileDialog fwOpenFile; + + fwOpenFile = new OpenFileDialog(); + + if (fwOpenFile.ShowDialog() == DialogResult.OK) + { + teFilename.Text = fwOpenFile.FileName; + + byte[] bName = csUtils.StringToByte(Path.GetFileName(teFilename.Text)); + if ((bName[0] == (byte)'B') + && (bName[1] == (byte)'M') + && (bName[2] == (byte)'C') + && (bName[3] == (byte)'B') + ) + { + TarGetFileName = BMCB_FILE_NAME; + } + else if ((bName[0] == (byte)'m') + && (bName[1] == (byte)'B') + && (bName[2] == (byte)'M') + && (bName[3] == (byte)'S') + ) + { + TarGetFileName = mBMS_FILE_NAME; + } + + if (TarGetFileName != "") + lbDownloadStatus.Text = TarGetFileName; + + btnDownload.Enabled = true; + } + } + + private void btnDownload_Click(object sender, EventArgs e) + { + if ((hostIP != "")&&(teFilename.Text != "")) + { + FwDownload(hostIP, teFilename.Text); + } + } + + #endregion + + #region RBMS RESET EVENT + + private void btnReset_Click(object sender, EventArgs e) + { + OnResetEvent(this, 1, csConstData.ResetCommandFlag.SystemReset); + } + + private void btnLcdHistoryDelete_Click(object sender, EventArgs e) + { + OnResetEvent(this, 1, csConstData.ResetCommandFlag.SystemResetAll); + } + + public void Reset_Result(string result, bool error) + { + if (this.InvokeRequired) + { + this.Invoke(new MethodInvoker(delegate() + { + if (error) + MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error); + else + MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information); + })); + } + else + { + if (error) + MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error); + else + MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + + #endregion + } +} diff --git a/LFP_Manager/Controls/ucTftpClientcs.resx b/LFP_Manager/Controls/ucTftpClientcs.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/LFP_Manager/Controls/ucTftpClientcs.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LFP_Manager/DB Schema/DB_SCHEMA_TABLE.sql b/LFP_Manager/DB Schema/DB_SCHEMA_TABLE.sql new file mode 100644 index 0000000..f845b66 --- /dev/null +++ b/LFP_Manager/DB Schema/DB_SCHEMA_TABLE.sql @@ -0,0 +1,49 @@ +/* + * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + * Table Name : TInventoryData + * Description : BMS Inventory Data + * createAt : 2020.12.02 + * createBy : JK.Woo + * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + */ +drop table if exists TInventoryData; +--drop sequence if exists inventory_data_seq; + +--create sequence inventory_data_seq start 1; + +create table TInventoryData +( + manufacture_date integer not null , + pcb_sn varchar(20) not null , + module_sn varchar(32) null , + create_date timestamp not null , + modify_date timestamp not null , + + primary key (pcb_sn) +); +create index inventory_data_idx1 on TInventoryData (pcb_sn); +create index inventory_data_idx2 on TInventoryData (module_sn); + +/* + * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + * Table Name : TErrorLogTable + * Description : Error Message Log Table + * createAt : 2019.11.04 + * createBy : JK.Woo + * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + */ +drop table if exists TErrorLogTable; +--drop sequence if exists module_group_seq; + +--create sequence module_group_seq start 1; + +create table TErrorLogTable +( + create_date timestamp not null , + pcb_sn varchar(20) not null , + module_sn varchar(32) null , + PROCESS varchar(20) not null , + ERROR_TYPE varchar(100) not null , + ERROR_MSG varchar(200) not null +); + diff --git a/LFP_Manager/DB Schema/LOG_DB_SCHEMA_TABLE.sql b/LFP_Manager/DB Schema/LOG_DB_SCHEMA_TABLE.sql new file mode 100644 index 0000000..15dc136 --- /dev/null +++ b/LFP_Manager/DB Schema/LOG_DB_SCHEMA_TABLE.sql @@ -0,0 +1,86 @@ +/********************************** BATTERY VALUE TABLE **************************************************/ + +/* + * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + * Table Name : TModuleValue + * Description : Battery Module Value and Status Table + * createAt : 2021.03.04 + * createBy : JK.Woo + * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + */ +drop table if exists TModuleValue; + +create table TModuleValue +( + create_date timestamp not null , + module_no smallint not null , + model_name varchar(32) null , + module_sn varchar(32) null , + fw_ver varchar(10) null , -- "V2.4.1.4" + comm_fail BOOLEAN null , + op_status smallint null , + alarm_status smallint null , + warning smallint null , + fault smallint null , + module_voltage NUMERIC null , + module_current NUMERIC null , + module_soc NUMERIC null , + module_soh NUMERIC null , + module_cyclecount NUMERIC null , + cv_diff NUMERIC null , + cell_voltage_01 NUMERIC null , + cell_voltage_02 NUMERIC null , + cell_voltage_03 NUMERIC null , + cell_voltage_04 NUMERIC null , + cell_voltage_05 NUMERIC null , + cell_voltage_06 NUMERIC null , + cell_voltage_07 NUMERIC null , + cell_voltage_08 NUMERIC null , + cell_voltage_09 NUMERIC null , + cell_voltage_10 NUMERIC null , + cell_voltage_11 NUMERIC null , + cell_voltage_12 NUMERIC null , + cell_voltage_13 NUMERIC null , + cell_voltage_14 NUMERIC null , + cell_voltage_15 NUMERIC null , + cell_voltage_16 NUMERIC null , + cell_voltage_17 NUMERIC null , + cell_voltage_18 NUMERIC null , + cell_voltage_19 NUMERIC null , + cell_voltage_20 NUMERIC null , + cell_voltage_21 NUMERIC null , + cell_voltage_22 NUMERIC null , + cell_voltage_23 NUMERIC null , + cell_voltage_24 NUMERIC null , + cell_voltage_25 NUMERIC null , + cell_voltage_26 NUMERIC null , + cell_voltage_27 NUMERIC null , + cell_voltage_28 NUMERIC null , + cell_voltage_29 NUMERIC null , + cell_voltage_30 NUMERIC null , + cell_voltage_31 NUMERIC null , + cell_voltage_32 NUMERIC null , + cell_voltage_33 NUMERIC null , + cell_voltage_34 NUMERIC null , + cell_voltage_35 NUMERIC null , + cell_voltage_36 NUMERIC null , + cell_voltage_37 NUMERIC null , + cell_voltage_38 NUMERIC null , + cell_voltage_39 NUMERIC null , + tp_diff NUMERIC null , + temperature_01 NUMERIC null , + temperature_02 NUMERIC null , + temperature_03 NUMERIC null , + temperature_04 NUMERIC null , + temperature_05 NUMERIC null , + temperature_06 NUMERIC null , + temperature_07 NUMERIC null , + temperature_08 NUMERIC null , + ext1_temp NUMERIC null , + ext2_temp NUMERIC null , + chg_option smallint null , + + primary key (create_date, module_no) +); + +create index ModuleValue_data_idx1 on TModuleValue (create_date); diff --git a/LFP_Manager/DataStructure/CsSnmpConstData.cs b/LFP_Manager/DataStructure/CsSnmpConstData.cs new file mode 100644 index 0000000..753d9f0 --- /dev/null +++ b/LFP_Manager/DataStructure/CsSnmpConstData.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LFP_Manager.DataStructure +{ + internal class CsSnmpConstData + { + public static readonly string[] SnmpOidInfo = + { + ".1.3.6.1.2.1.15.1.0", // 0 Voltage - 10mV + ".1.3.6.1.2.1.15.2.0", // 1 Current - 10mA + ".1.3.6.1.2.1.15.3.0", // 2 #01 Cell Voltage - mV + ".1.3.6.1.2.1.15.4.0", // 3 #02 Cell Voltage - mV + ".1.3.6.1.2.1.15.5.0", // 4 #03 Cell Voltage - mV + ".1.3.6.1.2.1.15.6.0", // 5 #04 Cell Voltage - mV + ".1.3.6.1.2.1.15.7.0", // 6 #05 Cell Voltage - mV + ".1.3.6.1.2.1.15.8.0", // 7 #06 Cell Voltage - mV + ".1.3.6.1.2.1.15.9.0", // 8 #07 Cell Voltage - mV + ".1.3.6.1.2.1.15.10.0", // 9 #08 Cell Voltage - mV + ".1.3.6.1.2.1.15.11.0", // 10 #09 Cell Voltage - mV + ".1.3.6.1.2.1.15.12.0", // 11 #10 Cell Voltage - mV + ".1.3.6.1.2.1.15.13.0", // 12 #11 Cell Voltage - mV + ".1.3.6.1.2.1.15.14.0", // 13 #12 Cell Voltage - mV + ".1.3.6.1.2.1.15.15.0", // 14 #13 Cell Voltage - mV + ".1.3.6.1.2.1.15.16.0", // 15 #14 Cell Voltage - mV + ".1.3.6.1.2.1.15.17.0", // 16 #15 Cell Voltage - mV + ".1.3.6.1.2.1.15.18.0", // 17 #16 Cell Voltage - mV + + ".1.3.6.1.2.1.15.19.0", // 18 Temp of PCB - C + ".1.3.6.1.2.1.15.20.0", // 19 Temp of Ambient - C + ".1.3.6.1.2.1.15.21.0", // 20 Temp Max. - C + ".1.3.6.1.2.1.15.22.0", // 21 Remaining Capacity - 0.1AH + + ".1.3.6.1.2.1.15.24.0", // 23 SOH - 0.00% + ".1.3.6.1.2.1.15.25.0", // 24 SOC - 0.00% + ".1.3.6.1.2.1.15.26.0", // 25 Status + ".1.3.6.1.2.1.15.27.0", // 26 Warning + ".1.3.6.1.2.1.15.28.0", // 27 Protection + ".1.3.6.1.2.1.15.29.0", // 28 FailAndStatus + ".1.3.6.1.2.1.15.30.0", // 29 Cycle Count + + ".1.3.6.1.2.1.15.31.0", // 30 #01 Temp - C + ".1.3.6.1.2.1.15.32.0", // 31 #02 Temp - C + ".1.3.6.1.2.1.15.33.0", // 32 #03 Temp - C + ".1.3.6.1.2.1.15.34.0", // 33 #04 Temp - C + + ".1.3.6.1.2.1.15.37.0", // 34 Cell Number + ".1.3.6.1.2.1.15.38.0", // 35 Designed Capacity - 0.1AH + ".1.3.6.1.2.1.15.39.0", // 36 Average Temp - C + ".1.3.6.1.2.1.15.40.0", // 37 Max Charge Current - A + ".1.3.6.1.2.1.15.41.0", // 38 Temp Number + + ".1.3.6.1.2.1.15.42.0", // 39 DateTime - Year + ".1.3.6.1.2.1.15.43.0", // 40 DateTime - Month + ".1.3.6.1.2.1.15.44.0", // 41 DateTime - Date + ".1.3.6.1.2.1.15.45.0", // 42 DateTime - Hour + ".1.3.6.1.2.1.15.46.0", // 43 DateTime - Minute + ".1.3.6.1.2.1.15.47.0", // 44 DateTime - Second + + ".1.3.6.1.2.1.15.48.0", // 45 Flaot Voltage - 0.00V + ".1.3.6.1.2.1.15.49.0", // 46 Boost Voltage - 0.00V + + ".1.3.6.1.2.1.15.50.0", // 47 Min. Charge Temp - C + ".1.3.6.1.2.1.15.51.0", // 48 Max. Charge Temp - C + + ".1.3.6.1.2.1.15.60.0", // 49 Model - String + ".1.3.6.1.2.1.15.61.0", // 50 BMS Firmware - String + ".1.3.6.1.2.1.15.62.0", // 51 Pack Serial Number - String + ".1.3.6.1.2.1.15.63.0", // 52 Vendor Name - String + ".1.3.6.1.2.1.15.64.0", // 53 Product Code - String + ".1.3.6.1.2.1.15.65.0", // 54 MajorMinorRev - String + ".1.3.6.1.2.1.15.66.0", // 55 HwProductRev - String + ".1.3.6.1.2.1.15.67.0", // 56 Manufacture Date - String + }; + } +} diff --git a/LFP_Manager/DataStructure/CsSnmpConstData124050.cs b/LFP_Manager/DataStructure/CsSnmpConstData124050.cs new file mode 100644 index 0000000..fc323f6 --- /dev/null +++ b/LFP_Manager/DataStructure/CsSnmpConstData124050.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LFP_Manager.DataStructure +{ + internal class CsSnmpConstData124050 + { + public static readonly string[] SnmpOidInfo = + { + ".1.3.6.1.2.1.15.1.0", // 0 Voltage - 10mV + ".1.3.6.1.2.1.15.2.0", // 1 Current - 10mA + ".1.3.6.1.2.1.15.3.0", // 2 #01 Cell Voltage - mV + ".1.3.6.1.2.1.15.4.0", // 3 #02 Cell Voltage - mV + ".1.3.6.1.2.1.15.5.0", // 4 #03 Cell Voltage - mV + ".1.3.6.1.2.1.15.6.0", // 5 #04 Cell Voltage - mV + ".1.3.6.1.2.1.15.7.0", // 6 #05 Cell Voltage - mV + ".1.3.6.1.2.1.15.8.0", // 7 #06 Cell Voltage - mV + ".1.3.6.1.2.1.15.9.0", // 8 #07 Cell Voltage - mV + ".1.3.6.1.2.1.15.10.0", // 9 #08 Cell Voltage - mV + ".1.3.6.1.2.1.15.11.0", // 10 #09 Cell Voltage - mV + ".1.3.6.1.2.1.15.12.0", // 11 #10 Cell Voltage - mV + ".1.3.6.1.2.1.15.13.0", // 12 #11 Cell Voltage - mV + ".1.3.6.1.2.1.15.14.0", // 13 #12 Cell Voltage - mV + ".1.3.6.1.2.1.15.15.0", // 14 #13 Cell Voltage - mV + ".1.3.6.1.2.1.15.16.0", // 15 #14 Cell Voltage - mV + ".1.3.6.1.2.1.15.17.0", // 16 #15 Cell Voltage - mV + ".1.3.6.1.2.1.15.18.0", // 17 #16 Cell Voltage - mV + ".1.3.6.1.2.1.15.19.0", // 18 #17 Cell Voltage - mV + ".1.3.6.1.2.1.15.20.0", // 19 #18 Cell Voltage - mV + ".1.3.6.1.2.1.15.21.0", // 20 #19 Cell Voltage - mV + ".1.3.6.1.2.1.15.22.0", // 21 #20 Cell Voltage - mV + ".1.3.6.1.2.1.15.23.0", // 22 #21 Cell Voltage - mV + ".1.3.6.1.2.1.15.24.0", // 23 #22 Cell Voltage - mV + ".1.3.6.1.2.1.15.25.0", // 24 #23 Cell Voltage - mV + ".1.3.6.1.2.1.15.26.0", // 25 #24 Cell Voltage - mV + ".1.3.6.1.2.1.15.27.0", // 26 #25 Cell Voltage - mV + ".1.3.6.1.2.1.15.28.0", // 27 #26 Cell Voltage - mV + ".1.3.6.1.2.1.15.29.0", // 28 #27 Cell Voltage - mV + ".1.3.6.1.2.1.15.30.0", // 29 #28 Cell Voltage - mV + ".1.3.6.1.2.1.15.31.0", // 30 #29 Cell Voltage - mV + ".1.3.6.1.2.1.15.32.0", // 31 #30 Cell Voltage - mV + ".1.3.6.1.2.1.15.33.0", // 32 #31 Cell Voltage - mV + ".1.3.6.1.2.1.15.34.0", // 33 #32 Cell Voltage - mV + ".1.3.6.1.2.1.15.35.0", // 34 #33 Cell Voltage - mV + ".1.3.6.1.2.1.15.36.0", // 35 #34 Cell Voltage - mV + ".1.3.6.1.2.1.15.37.0", // 36 #35 Cell Voltage - mV + ".1.3.6.1.2.1.15.38.0", // 37 #36 Cell Voltage - mV + ".1.3.6.1.2.1.15.39.0", // 38 #37 Cell Voltage - mV + ".1.3.6.1.2.1.15.40.0", // 39 #38 Cell Voltage - mV + ".1.3.6.1.2.1.15.41.0", // 40 #39 Cell Voltage - mV + + ".1.3.6.1.2.1.15.43.0", // 41 Temp of PCB - C + ".1.3.6.1.2.1.15.44.0", // 42 Temp of Ambient - C + ".1.3.6.1.2.1.15.45.0", // 43 Temp Max. - C + ".1.3.6.1.2.1.15.46.0", // 44 Remaining Capacity - 0.1AH + + ".1.3.6.1.2.1.15.47.0", // 45 SOH - 0.00% + ".1.3.6.1.2.1.15.48.0", // 46 SOC - 0.00% + ".1.3.6.1.2.1.15.49.0", // 47 Status + ".1.3.6.1.2.1.15.50.0", // 48 Warning + ".1.3.6.1.2.1.15.51.0", // 49 Protection + ".1.3.6.1.2.1.15.52.0", // 50 FailAndStatus + ".1.3.6.1.2.1.15.53.0", // 51 Cycle Count + + ".1.3.6.1.2.1.15.54.0", // 52 #01 Temp - C + ".1.3.6.1.2.1.15.55.0", // 53 #02 Temp - C + ".1.3.6.1.2.1.15.56.0", // 54 #03 Temp - C + ".1.3.6.1.2.1.15.57.0", // 55 #04 Temp - C + ".1.3.6.1.2.1.15.58.0", // 56 #05 Temp - C + ".1.3.6.1.2.1.15.59.0", // 57 #06 Temp - C + ".1.3.6.1.2.1.15.60.0", // 58 #07 Temp - C + ".1.3.6.1.2.1.15.61.0", // 59 #08 Temp - C + + ".1.3.6.1.2.1.15.68.0", // 64 Cell Number + ".1.3.6.1.2.1.15.69.0", // 65 Designed Capacity - 0.1AH + ".1.3.6.1.2.1.15.70.0", // 66 Average Temp - C + ".1.3.6.1.2.1.15.71.0", // 67 Max Charge Current - A + ".1.3.6.1.2.1.15.72.0", // 69 Temp Number + + ".1.3.6.1.2.1.15.74.0", // 69 DateTime - Year + ".1.3.6.1.2.1.15.75.0", // 70 DateTime - Month + ".1.3.6.1.2.1.15.76.0", // 71 DateTime - Date + ".1.3.6.1.2.1.15.77.0", // 72 DateTime - Hour + ".1.3.6.1.2.1.15.78.0", // 73 DateTime - Minute + ".1.3.6.1.2.1.15.79.0", // 74 DateTime - Second + + ".1.3.6.1.2.1.15.81.0", // 75 Flaot Voltage - 0.00V + ".1.3.6.1.2.1.15.82.0", // 76 Boost Voltage - 0.00V + + ".1.3.6.1.2.1.15.83.0", // 77 Min. Charge Temp - C + ".1.3.6.1.2.1.15.84.0", // 78 Max. Charge Temp - C + + ".1.3.6.1.2.1.15.90.0", // 79 Model - String + ".1.3.6.1.2.1.15.91.0", // 80 BMS Firmware - String + ".1.3.6.1.2.1.15.92.0", // 81 Pack Serial Number - String + ".1.3.6.1.2.1.15.93.0", // 82 Vendor Name - String + ".1.3.6.1.2.1.15.94.0", // 83 Product Code - String + ".1.3.6.1.2.1.15.95.0", // 84 MajorMinorRev - String + ".1.3.6.1.2.1.15.96.0", // 85 HwProductRev - String + ".1.3.6.1.2.1.15.97.0", // 86 Manufacture Date - String + }; + } +} diff --git a/LFP_Manager/DataStructure/csCanConstData.cs b/LFP_Manager/DataStructure/csCanConstData.cs new file mode 100644 index 0000000..db8a0bf --- /dev/null +++ b/LFP_Manager/DataStructure/csCanConstData.cs @@ -0,0 +1,192 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace LFP_Manager.DataStructure +{ + class csCanConstData + { + public class CanDeviceInfo + { + public const int VCI_PCI5121 = 1; + public const int VCI_PCI9810 = 2; + public const int VCI_USBCAN1 = 3; + public const int VCI_USBCAN2 = 4; + public const int VCI_USBCAN2A = 4; + public const int VCI_PCI9820 = 5; + public const int VCI_CAN232 = 6; + public const int VCI_PCI5110 = 7; + public const int VCI_CANLITE = 8; + public const int VCI_ISA9620 = 9; + public const int VCI_ISA5420 = 10; + public const int VCI_PC104CAN = 11; + public const int VCI_CANETUDP = 12; + public const int VCI_CANETE = 12; + public const int VCI_DNP9810 = 13; + public const int VCI_PCI9840 = 14; + public const int VCI_PC104CAN2 = 15; + public const int VCI_PCI9820I = 16; + public const int VCI_CANETTCP = 17; + public const int VCI_PEC9920 = 18; + public const int VCI_PCI5010U = 19; + public const int VCI_USBCAN_E_U = 20; + public const int VCI_USBCAN_2E_U = 21; + public const int VCI_PCI5020U = 22; + public const int VCI_EG20T_CAN = 23; + /// + /// + /// + /// + /// + /// + /// + } + + public static readonly string[] DEVICE_NAME = + { + "PCI5121", + "PCI9810", + "USBCAN1", + "USBCAN2", + "USBCAN2A", + "PCI9820", + "CAN232", + "PCI5110", + "CANLITE", + "ISA9620", + "ISA5420", + "PC104CAN", + "CANETUDP", + "CANETE", + "DNP9810", + "PCI9840", + "PC104CAN2", + "PCI9820I", + "CANETTCP", + "PEC9920", + "PCI5010U", + "USBCAN_E_U", + "USBCAN_2E_U", + "PCI5020U", + "EG20T_CAN", + /// + /// + /// + /// + /// + /// + /// + }; + + public static readonly int[] DEVICE_ID = + { + 1, + 2, + 3, + 4, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + /// + /// + /// + /// + /// + /// + /// + }; + + //0x060003--1000Kbps + //0x060004--800Kbps + //0x060007--500Kbps + //0x1C0008--250Kbps + //0x1C0011--125Kbps + //0x160023--100Kbps + //0x1C002C--50Kbps + //0x1600B3--20Kbps + //0x1C00E0--10Kbps + //0x1C01C1--5Kbps + + public static readonly int[] CAN_BAUDRATE = + { + 0x060003, + 0x060004, + 0x060007, + 0x1C0008, + 0x1C0011, + 0x160023, + 0x1C002C, + 0x1600B3, + 0x1C00E0, + 0x1C01C1 + }; + + //USBCAN II Baudrate + public static readonly int[] CAN_BAUDRATE_OTHER = // Timer 0 + Timer 1 + { + 0x0014, // 1000Kbps + 0x0016, // 800Kbps + 0x001C, // 500Kbps + 0x011C, // 250Kbps + 0x031C, // 125Kbps + 0x041C, // 100Kbps + 0x091C, // 50Kbps + 0x181C, // 20Kbps + 0x311C, // 10Kbps + 0xBFFF // 5Kbps + }; + + public static readonly string[] CAN_BAUDRATE_STR = + { + "1000Kbps", + "800Kbps", + "500Kbps", + "250Kbps", + "125Kbps", + "100Kbps", + "50Kbps", + "20Kbps", + "10Kbps", + "5Kbps" + }; + + public class SendType + { + public const int Normal = 0; + public const int Single_Normal = 1; + public const int Loop_Back = 2; + public const int Single_Loop_Back = 3; + } + + public class FrameType + { + public const int Standard = 0; + public const int Extended = 1; + } + + public class FrameFormat + { + public const int Data_Frame = 0; + public const int Remote_Frame = 1; + } + } +} diff --git a/LFP_Manager/DataStructure/csConstData.cs b/LFP_Manager/DataStructure/csConstData.cs new file mode 100644 index 0000000..62d1384 --- /dev/null +++ b/LFP_Manager/DataStructure/csConstData.cs @@ -0,0 +1,273 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace LFP_Manager.DataStructure +{ + class csConstData + { + public class SystemInfo + { + public const int BASE_CAN_TARGET_ADDR = 200; + public const int MAX_MODULE_SIZE = 16; + + public const int MAX_MODULE_CELL_SIZE = 39; + public const int MAX_MODULE_TEMP_SIZE = 8; //Byul 21.08.09 Initial : 8 + + public static readonly int FLOATING_VOLTAGE = (int)(3.55 * MAX_MODULE_CELL_SIZE * 10); + + public static readonly string[] CHG_MODE = + { + "NO CURR LMT", + "ALWAYS CURR LMT", + "PRE-CHG PROTECT", + "CHG LMT AFTER OC", + "PRE-CHG + LMT", + }; + } + + public class CommType + { + public const int COMM_UART = 0; + public const int COMM_RS485 = 1; + public const int COMM_SNMP = 2; + public const int COMM_UART_MULTI = 9; + } + + public class MODEL_INDEX + { + public const int LFPM_48100D = 0; + public const int LFPM_48150D = 1; + public const int LFPM_48200D = 2; + public const int LFPM_48250D = 3; + public const int LFPM_48300D = 4; + public const int LFPM_124050D = 5; + } + + public static readonly string[] MODEL_STR = + { + "LFPM-48100D", // 0 + "LFPM-48150D", // 1 + "LFPM-48200D", // 2 + "LFPM-48250D", // 3 + "LFPM-48300D", // 4 + "LFPM-124050D", // 5 + }; + + public static readonly string[] UART_PROTOCOL = + { + "AMG", + }; + + public class UART_PARAM_LIST + { + public const int DEFAULT_PARAM = 0; + public const int CELL_UNDER_VOLTAGE = 61; //67 + public const int PACK_UNDER_VOLTAGE = 64; //64 + public const int CELL_OVER_VOLTAGE = 67; // + public const int PACK_OVER_VOLTAGE = 70; //61 + public const int CHG_OVER_CURRENT2 = 83; + public const int DCH_OVER_CURRENT2 = 84; + public const int CHG_OVER_CURRENT = 78; + public const int DCH_OVER_CURRENT = 79; + + public const int ENV_LOW_TEMPERATURE = 0x82; // 130, 131, 132 0x82, 0x83, 0x84 - Warning, Trip, Release + public const int ENV_HIGH_TEMPERATURE = 0x85; // 133, 134, 135 0x85, 0x86, 0x87 - Warning, Trip, Release + + public const int CHG_LOW_TEMPERATURE = 90; + public const int CHG_HIGH_TEMPERATURE = 93; //93 + public const int DCH_LOW_TEMPERATURE = 96; + public const int DCH_HIGH_TEMPERATURE = 99; //99 + public const int PCB_HIGH_TEMPERATURE = 102; + + public const int LOW_CAPACITY = 58; + + public const int DESIGN_CAPACITY = 37; + public const int SOC_VALUE = 24; + public const int CYCLE_COUNT = 29; + } + + public class UART_CALIB_ADDR_LIST + { + public const int LIMIT_CHARGE = 0x502E; // + public const int BMS_DATETIME = 0x002D; + public const int CHAGE_MODE = 0x002F; // + public const int ANTI_THEFT_COMM = 0x0088; + public const int ANTI_THEFT_GYRO = 0x0089; + + public const int BAL_VOLT = 0x38; + public const int BAL_DIFF = 0x39; + } + + public class UART_PARAM_DEFAULT + { + public const int Warn_Cell_UV = 2800; + public const int Protect_Cell_UV = 2500; + public const int Release_Cell_UV = 3000; + public const int Warn_Pack_UV = 4300; + public const int Protect_Pack_UV = 4200; + public const int Release_Pack_UV = 4500; + + public const int Warn_Cell_OV = 3750; + public const int Protect_Cell_OV = 3850; + public const int Release_Cell_OV = 3580; + public const int Warn_Pack_OV = 5600; + public const int Protect_Pack_OV = 5700; + public const int Release_Pack_OV = 5400; + + public const int Protect_Charge_OC1 = 11000; + public const int Protect_Discharge_OC1 = 11000; + public const int Protect_Charge_OC2 = 12000; + public const int Protect_Discharge_OC2 = 12000; + public const int ReleaseTime_Charge_OC = 60; + public const int ReleaseTime_Discharge_OC = 60; + public const int Delay_Charge_OC1 = 5; + public const int Delay_Discharge_OC1 = 5; + public const int Delay_Charge_OC2 = 1; + public const int Delay_Discharge_OC2 = 1; + public const int Times_Charge_OC = 5; + public const int Times_Discharge_OC = 5; + + public const int Warn_Charge_UT = -5; + public const int Protect_Charge_UT = -10; + public const int Release_Charge_UT = -3; + public const int Warn_Charge_OT = 60; + public const int Protect_Charge_OT = 65; + public const int Release_Charge_OT = 55; + + public const int Warn_Discharge_UT = -20; + public const int Protect_Discharge_UT = -25; + public const int Release_Discharge_UT = -15; + public const int Warn_Discharge_OT = 65; + public const int Protect_Discharge_OT = 70; + public const int Release_Discharge_OT = 60; + + public const int Warn_Low_Capacity = 5; + } + + public class UART_124050_PARAM_DEFAULT + { + public const int Warn_Cell_UV = 2800; + public const int Protect_Cell_UV = 2500; + public const int Release_Cell_UV = 3000; + public const int Warn_Pack_UV = 10900; + public const int Protect_Pack_UV = 9795; + public const int Release_Pack_UV = 11700; + + public const int Warn_Cell_OV = 3750; + public const int Protect_Cell_OV = 3850; + public const int Release_Cell_OV = 3580; + public const int Warn_Pack_OV = 14600; + public const int Protect_Pack_OV = 15000; + public const int Release_Pack_OV = 14000; + + public const int Protect_Charge_OC1 = 11000; + public const int Protect_Discharge_OC1 = 11000; + public const int Protect_Charge_OC2 = 12000; + public const int Protect_Discharge_OC2 = 12000; + public const int ReleaseTime_Charge_OC = 60; + public const int ReleaseTime_Discharge_OC = 60; + public const int Delay_Charge_OC1 = 5; + public const int Delay_Discharge_OC1 = 5; + public const int Delay_Charge_OC2 = 1; + public const int Delay_Discharge_OC2 = 1; + public const int Times_Charge_OC = 5; + public const int Times_Discharge_OC = 5; + + public const int Warn_Charge_UT = -5; + public const int Protect_Charge_UT = -10; + public const int Release_Charge_UT = -3; + public const int Warn_Charge_OT = 60; + public const int Protect_Charge_OT = 65; + public const int Release_Charge_OT = 55; + + public const int Warn_Discharge_UT = -20; + public const int Protect_Discharge_UT = -25; + public const int Release_Discharge_UT = -15; + public const int Warn_Discharge_OT = 65; + public const int Protect_Discharge_OT = 70; + public const int Release_Discharge_OT = 60; + + public const int Warn_Low_Capacity = 5; + + public const int Warn_Env_UT = -20; + public const int Protect_Env_UT = -25; + public const int Release_Env_UT = -15; + public const int Warn_Env_OT = 65; + public const int Protect_Env_OT = 70; + public const int Release_Env_OT = 60; + } + + public class ResetCommandFlag + { + public static readonly ushort SystemReset = 0x0001; + public static readonly ushort LcdHistoryDelete = 0x0002; + public static readonly ushort SystemResetAll = 0x0003; + } + + public class Eltek_Data + { + public static readonly ushort MD_BASE_REG = 4000; + public static readonly ushort MD_OFFSET = 400; + + public static readonly ushort OpDataRegAddr = 0; + public static readonly ushort OpDataRegSize = 15; + public static readonly ushort ParaDataRegAddr = 200; + public static readonly ushort ParaDataRegSize = 71; + + public static ushort GetOpDataRegAddr(int mID) + { + return (ushort)(MD_BASE_REG + (MD_OFFSET * mID) + OpDataRegAddr); + } + public static ushort GetParamDataRegAddr(int mID) + { + return (ushort)(MD_BASE_REG + (MD_OFFSET * mID) + ParaDataRegAddr); + } + } + public class CRC_Data + { + public static readonly byte[] auchCRCHi = + { + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, + 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, + 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, + 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, + 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, + 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, + 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, + 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, + 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, + 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, + 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, + 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, + 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40 + }; + + public static readonly byte[] auchCRCLo = + { + 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, + 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, + 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, + 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, + 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, + 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, + 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, + 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, + 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, + 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, + 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, + 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, + 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91, + 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, + 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, + 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, + 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,0x40 + }; + } + } +} diff --git a/LFP_Manager/DataStructure/csDataStructure.cs b/LFP_Manager/DataStructure/csDataStructure.cs new file mode 100644 index 0000000..f1aef6b --- /dev/null +++ b/LFP_Manager/DataStructure/csDataStructure.cs @@ -0,0 +1,961 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Runtime.InteropServices; +using System.Windows.Forms; +using static DevExpress.Utils.MVVM.Internal.ILReader; +using LFP_Manager.Function; + +namespace LFP_Manager.DataStructure +{ + public class CommConfig + { + public int CommType; + + public string SnmpIP; + public int SnmpModelIndex; + public int ModuleQty; + public int RecvWaitTime; + + public string UartPort; + public int UartBaudrate; + public int UartModelIndex; + public int UartProtocol; + + public int DbLogPeriod; + + public int GyroSensitive; + + public int ControlLevel; + + public string MasterPw; + public string EngineerPw; + public string TechnicianPw; + + public CommConfig() + { + CommType = 0; + + SnmpIP = "192.168.0.200"; + SnmpModelIndex = 0; + ModuleQty = 1; + RecvWaitTime = 1500; // 1500ms + + UartPort = ""; + UartBaudrate = 9600; + UartModelIndex = 0; + UartProtocol = 0; + + DbLogPeriod = 5; + + GyroSensitive = 120; + + ControlLevel = 0; + + MasterPw = "8003"; + EngineerPw = "7003"; + TechnicianPw = "6003"; + } + } + + public class TMinMax + { + public short value; + public short num; + + public TMinMax() + { + value = 0; + num = 0; + } + } + + public class DeviceSystemTotalData + { + public bool CommFail; + + public DeviceSystemIdent IdentData; + public DeviceValueTotalData ValueData; + public DeviceStatusTotalData StatusData; + + public DeviceSystemTotalData() + { + IdentData = new DeviceSystemIdent(); + ValueData = new DeviceValueTotalData(); + StatusData = new DeviceStatusTotalData(); + } + } + + public class DeviceSystemIdent + { + public string Manufacturer; + public string DeviceModel; + //public int ModuleQuantity; + + public byte[] fw_ver; + public string FwVerStr; + + public int AlarmOutputMode; + + public UInt32 ManufactureDate; + public string SerialNumber; + + public DeviceSystemIdent() + { + Manufacturer = ""; + DeviceModel = ""; + //ModuleQuantity = 1; + + fw_ver = new byte[4]; + FwVerStr = ""; + + AlarmOutputMode = 0; + ManufactureDate = 0; + SerialNumber = ""; + } + } + + public class DateTimeStruct + { + public int year; + public int month; + public int day; + public int hour; + public int minute; + public int second; + + public string DateTimeStr; + + public DateTimeStruct() + { + DateTimeStr = "-"; + } + } + + public class DeviceSystemData + { + public bool active; + + public int mNo; + public int cellQty; + public int recv_cellQty; + public int tempQty; + public int ntcQty; + public int ChargeVoltage; + public int DOD; + public int MaxChaCurrent; + public int MaxDchCurrent; + + public int FloatVoltage; + public int BoostVoltage; + + public int MinChargeTemp; + public int MaxChargeTemp; + + public UInt32 heatbeat; + public bool CommFail; + public bool ShelfCommFail; + public DateTime LastRxTime; + public Int32 BmsDateTimeInt; + public ushort BmsDateTimeShort1; + public ushort BmsDateTimeShort2; + + public DateTimeStruct BmsDateTime; + + public DeviceValueData ValueData; + public DeviceAvgData AvgData; + public DeviceStatusData StatusData; + public DeviceParamData ParamData; + public DeviceCalibration CalibrationData; + public DeviceInforation Information; + public DeviceEtcStatus EtcStatus; + + public DeviceMaxValue MaxValue; + public DeviceGyroValue GyroValue; + + public DeviceSystemData() + { + active = false; + + mNo = 0; + cellQty = csConstData.SystemInfo.MAX_MODULE_CELL_SIZE; + tempQty = csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE; + ChargeVoltage = 0; + DOD = 0; + MaxChaCurrent = 0; + MaxDchCurrent = 0; + + heatbeat = 0; + CommFail = false; + ShelfCommFail = false; + LastRxTime = DateTime.MinValue; + BmsDateTimeInt = 0; + + BmsDateTime = new DateTimeStruct(); + + ValueData = new DeviceValueData(); + AvgData = new DeviceAvgData(); + StatusData = new DeviceStatusData(); + ParamData = new DeviceParamData(); + CalibrationData = new DeviceCalibration(); + Information = new DeviceInforation(); + EtcStatus = new DeviceEtcStatus(); + + MaxValue = new DeviceMaxValue(); + GyroValue = new DeviceGyroValue(); + } + } + + public class DeviceValueTotalData + { + public short TotalVoltage; + public short TotalCurrent; + public short TotalSOC; + public short TotalSOH; + public short TotalTemp; + + public DeviceValueTotalData() + { + TotalVoltage = 0; + TotalCurrent = 0; + TotalSOC = 0; + TotalSOH = 0; + TotalTemp = 0; + } + } + + public class DeviceValueData + { + public byte[] fw_ver; + + public short voltageOfPack; + public short current; + public short cha_current; + public short dch_current; + public short averageCurrent; + public short rSOC; + + public short NumOfCells; + public short NumOfTemps; + + public ushort[] CellVoltage; + public short[] CellTemperature; + + public short Ext1Temperature; + public short Ext2Temperature; + + public short remainingCapacity; + public short stateOfHealth; + public int cycleCount; + public int fullChargeCapacity; + public int designedCapacity; + + public int TimeLeft; + + public int Ah_Charged; + public int Ah_Discharged; + public int NoOfDischargeCycles; + public int NoOfChargeCycles; + + public int ModuleAlarms; + public int ModuleWarnings; + public int ModuleStatus; + public int ModuleVoltage_int; + public int ModBusDocVersion; + + public int ParametersChanged; + public int MaxBattChargeCurr; + public int MaxBattDischargeCurr; + + public int BatteryProdDateYear; + public int BatteryProdDateMonth; + public int BatteryProdDateDay; + + public int BatteryModelDescription; + public int BatteryType; + + public DeviceValueData() + { + fw_ver = new byte[6]; + + CellVoltage = new ushort[csConstData.SystemInfo.MAX_MODULE_CELL_SIZE]; + CellTemperature = new short[csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE]; + } + } + + public class DeviceAvgData + { + public int maxCellVoltage; + public int minCellVoltage; + public int avgCellVoltage; + public int diffCellVoltage; + public int maxCellNum; + public int minCellNum; + public int maxTemp; + public int minTemp; + public int avgTemp; + public int diffTemp; + public int maxTempNum; + public int minTempNum; + + public DeviceAvgData() + { + + } + } + + public class DeviceStatusTotalData + { + public short batteryStatus; + public short warning; + public short protection; + public short status; + } + + public class DeviceStatusData + { + public short batteryStatus; + public short batteryStatus1; + public short warning; + public short protection; + public short protection1; + public short status; + public short faultAndStatus; + public short relayStatus; + public short errorCode; + public short specialAlarm; // 1: Commfail, 2. Gyro, 3, Breaker + + public short faultstatus; // Only for RS-485 + + public short cellBallanceStatus; + public short cellBalanceValue; + public short cellBalanceFlag; + } + + public class DeviceCommStatus + { + public DateTime LastRxTime; + public bool CommFail; + } + + public class DeviceParamData + { + public short CellOverVoltageTrip; + public short CellOverVoltageWarning; + public short CellOverVoltageRelease; + public short CellUnderVoltageTrip; + public short CellUnderVoltageWarning; + public short CellUnderVoltageRelease; + + public short SysOverVoltageTrip; + public short SysOverVoltageWarning; + public short SysOverVoltageRelease; + public short SysUnderVoltageTrip; + public short SysUnderVoltageWarning; + public short SysUnderVoltageRelease; + + public short ChaHighTempTrip; + public short ChaHighTempWarning; + public short ChaHighTempRelease; + public short ChaLowTempTrip; + public short ChaLowTempWarning; + public short ChaLowTempRelease; + public short DchHighTempTrip; + public short DchHighTempWarning; + public short DchHighTempRelease; + public short DchLowTempTrip; + public short DchLowTempWarning; + public short DchLowTempRelease; + + public short ChaOverCurrentTrip1; + public short ChaOverCurrentTrip2; + public short ChaOverCurrentWarning; + public short ChaOverCurrentReleaseTime; + public short ChaOverCurrentTimes; + public short ChaOverCurrentDelay1; + public short ChaOverCurrentDelay2; + + public short DchOverCurrentTrip1; + public short DchOverCurrentTrip2; + public short DchOverCurrentWarning; + public short DchOverCurrentReleaseTime; + public short DchOverCurrentTimes; + public short DchOverCurrentDelay1; + public short DchOverCurrentDelay2; + + public short PcbHighTempTrip; + public short PcbHighTempWarning; + public short PcbHighTempRelease; + + public short EnvLowTempWarning; + public short EnvLowTempTrip; + public short EnvLowTempRelease; + public short EnvHighTempWarning; + public short EnvHighTempTrip; + public short EnvHighTempRelease; + + public short ShortCircuit; + + public short LowSocTrip; + public short LowSocWarning; + public short LowSocRelease; + + public short CellVoltageDifferenceTrip; + public short CellVoltageDifferenceWarning; + public short CellVoltageDifferenceRelease; + public short CellVoltageDifferenceTime; + + public short DefalutParamOption; + public short DefalutParamAll; + public ushort ReadParamAll; + + public DeviceParamData DeepCopy() + { + DeviceParamData newCopy = new DeviceParamData + { + CellOverVoltageTrip = CellOverVoltageTrip, + CellOverVoltageWarning = CellOverVoltageWarning, + CellOverVoltageRelease = CellOverVoltageRelease, + CellUnderVoltageTrip = CellUnderVoltageTrip, + CellUnderVoltageWarning = CellUnderVoltageWarning, + CellUnderVoltageRelease = CellUnderVoltageRelease, + + SysOverVoltageTrip = SysOverVoltageTrip, + SysOverVoltageWarning = SysOverVoltageWarning, + SysOverVoltageRelease = SysOverVoltageRelease, + SysUnderVoltageTrip = SysUnderVoltageTrip, + SysUnderVoltageWarning = SysUnderVoltageWarning, + SysUnderVoltageRelease = SysUnderVoltageRelease, + + ChaHighTempTrip = ChaHighTempTrip, + ChaHighTempWarning = ChaHighTempWarning, + ChaHighTempRelease = ChaHighTempRelease, + ChaLowTempTrip = ChaLowTempTrip, + ChaLowTempWarning = ChaLowTempWarning, + ChaLowTempRelease = ChaLowTempRelease, + DchHighTempTrip = DchHighTempTrip, + DchHighTempWarning = DchHighTempWarning, + DchHighTempRelease = DchHighTempRelease, + DchLowTempTrip = DchLowTempTrip, + DchLowTempWarning = DchLowTempWarning, + DchLowTempRelease = DchLowTempRelease, + + ChaOverCurrentTrip1 = ChaOverCurrentTrip1, + ChaOverCurrentTrip2 = ChaOverCurrentTrip2, + ChaOverCurrentWarning = ChaOverCurrentWarning, + ChaOverCurrentReleaseTime = ChaOverCurrentReleaseTime, + ChaOverCurrentTimes = ChaOverCurrentTimes, + ChaOverCurrentDelay1 = ChaOverCurrentDelay1, + ChaOverCurrentDelay2 = ChaOverCurrentDelay2, + + DchOverCurrentTrip1 = DchOverCurrentTrip1, + DchOverCurrentTrip2 = DchOverCurrentTrip2, + DchOverCurrentWarning = DchOverCurrentWarning, + DchOverCurrentReleaseTime = DchOverCurrentReleaseTime, + DchOverCurrentTimes = DchOverCurrentTimes, + DchOverCurrentDelay1 = DchOverCurrentDelay1, + DchOverCurrentDelay2 = DchOverCurrentDelay2, + + PcbHighTempTrip = PcbHighTempTrip, + PcbHighTempWarning = PcbHighTempWarning, + PcbHighTempRelease = PcbHighTempRelease, + + EnvLowTempWarning = EnvLowTempWarning, + EnvLowTempTrip = EnvLowTempTrip, + EnvLowTempRelease = EnvLowTempRelease, + EnvHighTempWarning = EnvHighTempWarning, + EnvHighTempTrip = EnvHighTempTrip, + EnvHighTempRelease = EnvHighTempRelease, + + ShortCircuit = ShortCircuit, + + LowSocTrip = LowSocTrip, + LowSocWarning = LowSocWarning, + LowSocRelease = LowSocRelease, + + CellVoltageDifferenceTrip = CellVoltageDifferenceTrip, + CellVoltageDifferenceWarning = CellVoltageDifferenceWarning, + CellVoltageDifferenceRelease = CellVoltageDifferenceRelease, + CellVoltageDifferenceTime = CellVoltageDifferenceTime, + + DefalutParamOption = DefalutParamOption, + DefalutParamAll = DefalutParamAll, + ReadParamAll = ReadParamAll, + }; + return newCopy; + } + } + + public class DeviceCalibration + { + public CellVoltageCalib CellVoltge; + public SystemVoltageCalib SystemVoltage; + public ForcedBalControl ForcedBalancing; + public BatteryParameter Battery; + public CurrentCalib Current; + public SystemInfor SystemInfo; + public CapCalibration CapCalib; + public FetCalibration FetCalib; + public ChargeMode ChaMode; + public TAntiTheft AntiTheft; + public TBmsDateTime BmsDateTime; + + public TBalCalib BalCalib; + + public DeviceInforation InvData; + + public TAntiTheftComm AntiTheftComm; + public TAntiTheftGyro AntiTheftGyro; + + public DeviceCalibration() + { + CellVoltge = new CellVoltageCalib(); + SystemVoltage = new SystemVoltageCalib(); + ForcedBalancing = new ForcedBalControl(); + Battery = new BatteryParameter(); + Current = new CurrentCalib(); + SystemInfo = new SystemInfor(); + CapCalib = new CapCalibration(); + FetCalib = new FetCalibration(); + ChaMode = new ChargeMode(); + AntiTheft = new TAntiTheft(); + BmsDateTime = new TBmsDateTime(); + + BalCalib = new TBalCalib(); + + InvData = new DeviceInforation(); + + AntiTheftComm = new TAntiTheftComm(); + AntiTheftGyro = new TAntiTheftGyro(); + } + public DeviceCalibration DeepCopy() + { + DeviceCalibration newCopy = new DeviceCalibration + { + CellVoltge = CellVoltge, + SystemVoltage = SystemVoltage, + ForcedBalancing = ForcedBalancing, + Battery = Battery, + Current = Current, + SystemInfo = SystemInfo, + + CapCalib = CapCalib.DeepCopy(), + AntiTheft = AntiTheft.DeepCopy(), + BalCalib = BalCalib.DeepCopy(), + + FetCalib = FetCalib, + ChaMode = ChaMode.DeepCopy(), + }; + return newCopy; + } + } + + public class TAntiTheftComm + { + public int TimeOut; + public int FuncSwitch; + public int Unlock; + + public TAntiTheftComm() + { + TimeOut = 0; + FuncSwitch = 0; + Unlock = 0; + } + public TAntiTheftComm DeepCopy() + { + TAntiTheftComm newCopy = new TAntiTheftComm + { + TimeOut = TimeOut, + FuncSwitch = FuncSwitch, + Unlock = Unlock + }; + return newCopy; + } + } + public class TAntiTheftGyro + { + public int XAxis; + public int YAxis; + public int ZAxis; + public int GyroPolicySel; + public int GyroFuncSwitch; + public int GyroState; + public int Unlock; + + public TAntiTheftGyro() + { + XAxis = 0; + YAxis = 0; + ZAxis = 0; + GyroPolicySel = 0; + GyroFuncSwitch = 0; + GyroState = 0; + Unlock = 0; + } + public TAntiTheftGyro DeepCopy() + { + TAntiTheftGyro newCopy = new TAntiTheftGyro + { + XAxis = XAxis, + YAxis = YAxis, + ZAxis = ZAxis, + GyroPolicySel = GyroPolicySel, + GyroFuncSwitch = GyroFuncSwitch, + GyroState = GyroState, + Unlock = Unlock, + }; + return newCopy; + } + } + + public class CellVoltageCalib + { + public short CurrentCellNo; // 0: ODD, 1: EVEN + public short OddCellVoltageCalibration_K; + public short OddCellVoltageCalibration_B; + public short EvenCellVoltageCalibration_K; + public short EvenCellVoltageCalibration_B; + } + + public class SystemVoltageCalib + { + [MarshalAs(UnmanagedType.I2, SizeConst = 2)] + public short Calibration_K; + public short Calibration_B; + } + + public class ForcedBalControl + { + public short Control; + public short CellNo; + public bool AutoB; + } + + public class BatteryParameter + { + public short CellQty; + public short TempQty; + public UInt32 Capacity; + } + + public class CurrentCalib + { + public short SelectSubItem; + public short ShuntRange; + public short CurrentZero; + public short VoltageZero; + public Int32 ChgCalibration_K; + public Int32 DchCalibration_K; + public short ChaAndDchSelect; + public short ChargeOption; + } + + public class SystemInfor + { + //public short Id; + public DateTime devTime; + public ushort LastRebootCause; + } + + public class CapCalibration + { + public int DesignCapacity; + public int SocValue; + public int CycleCount; + + public CapCalibration() + { + DesignCapacity = 0; + SocValue = 0; + CycleCount = 0; + } + public CapCalibration DeepCopy() + { + CapCalibration newCopy = new CapCalibration + { + DesignCapacity = DesignCapacity, + SocValue = SocValue, + CycleCount = CycleCount, + }; + return newCopy; + } + } + + public class ChargeMode + { + public int Mode; + public int Value; + + public ChargeMode() + { + Mode = 0; + Value = 0; + } + public ChargeMode DeepCopy() + { + ChargeMode newCopy = new ChargeMode + { + Mode = Mode, + Value = Value, + }; + return newCopy; + } + } + public class TAntiTheft + { + public int Comm; + public int GyroScope; + + public TAntiTheft() + { + Comm = 0; + GyroScope = 0; + } + public TAntiTheft DeepCopy() + { + TAntiTheft newCopy = new TAntiTheft + { + Comm = Comm, + GyroScope = GyroScope, + }; + return newCopy; + } + } + public class TBmsDateTime + { + public string Str; + public int lValue; + public short[] sValue; + + public TBmsDateTime() + { + Str = ""; + lValue = 0; + sValue = new short[2]; + } + public TBmsDateTime DeepCopy() + { + TBmsDateTime newCopy = new TBmsDateTime + { + Str = Str, + lValue = lValue, + }; + for (int i = 0; i < 2; i++) + { + newCopy.sValue[i] = sValue[i]; + } + return newCopy; + } + } + public class TBalCalib + { + public int Volt; + public int Diff; + + public TBalCalib() + { + Volt = 0; + Diff = 0; + } + public TBalCalib DeepCopy() + { + TBalCalib newCopy = new TBalCalib + { + Volt = Volt, + Diff = Diff, + }; + return newCopy; + } + } + + + public class FetCalibration + { + public short FetStatus; + public short DchFetOff; // 6010 + public short ChaFetOff; // 6011 + public short LmtChaFetOff; // 6012 + public short PreChaFetOn; // 6013 + public short HeaterFetOn; // 6014 + public short ChaFetOn; // 6015 + } + + public class DeviceInforation + { + //public string ManuDate_Str; + public byte[] ManuDate_Byte; + + public byte[] Model_Byte; + public byte[] FwVer_Byte; + //public string Model_Str; + //public string FwVer_Str; + public byte[] BMS_SN; + //public string BMS_SN_Str; + public byte[] Module_SN; + public byte[] Vendor_Byte; + + public string VendorName; + public string ProductCode; + public string MajorMinorRev; + public string ModelName; + public string HwSerialNumber; + public string HwProductRev; + public string ManufacturingDate; + public string SwProductRev; + + public DeviceInforation() + { + ManuDate_Byte = new byte[10]; + + Model_Byte = new byte[24]; + FwVer_Byte = new byte[6]; + //Model_Str = " "; + //FwVer_Str = " "; + BMS_SN = new byte[32]; + //BMS_SN_Str = " "; + Module_SN = new byte[32]; + Vendor_Byte = new byte[10]; + + VendorName = "-"; + ProductCode = "-"; + MajorMinorRev = "-"; + ModelName = "-"; + HwSerialNumber = "-"; + HwProductRev = "-"; + ManufacturingDate = "-"; + SwProductRev = "-"; + } + } + + public class DeviceEtcStatus + { + public short SwitchHW; + public short SwitchWarning; + public short SwitchProtect; + public ushort LogDurationIdle; // min + public ushort LogDurationActive; // min + public UInt32 DataAndTime; + public ushort ChgOCPModel; /* 充电限流 + 0:不限流保护 + 1:始终限流充电 + 2:预充保护 + 4:充电过流后限流 + 8:预充+充电过流后限流 */ + public short ChgLmtVoltage; // mv + public short SOC_StopFloat; // % 暂停浮充Soc + public short SOC_RecvFloat; // % 恢复浮充电压 + public short DurationFloat; // sec + public short DurationIdle; // sec + public short VoltageStopFloat; // 0.1V + public short VoltageRecvFloat; // 0.1V + public short FloatMode; /* 0000: 持续浮充 + 0001:检测电压 + 0002:定时浮充 + 0003:检测SOC */ + public short BalanceVoltage; // mV 均衡启动电压 + public short BalanceDeltaV; // mV 均衡启动压差 + public short WarnLowCapacity; // 低容量告警 + public short HistroyDelete; // 删除数据记录 + } + + public class DeviceMaxValue + { + public short MaxChgCurrent; + public short MaxChgTemperature; + public short MinChgTemperature; + public short FloatChgVolt; + public short BoostChgVolt; + + public DeviceMaxValue() + { + + } + } + public class DeviceGyroValue + { + public short X_axis; + public short Y_axis; + public short Z_axis; + public short Gyro_policy_sel; + public short Gyro_func_sw; + public short Gyro_state; + + public DeviceGyroValue() + { + + } + } + + public class TUartTRxData + { + public int type; + public int length; + public byte[] data; + + public TUartTRxData() + { + type = 0; + length = 0; + data = new byte[256]; + } + public TUartTRxData DeepCopy() + { + TUartTRxData newCopy = new TUartTRxData + { + type = type, + length = length, + data = data + }; + for (int i = 0; i < data.Length; i++) + { + newCopy.data[i] = data[i]; + } + + return newCopy; + } + } + + public class TUartTxBuff + { + public int InPos; + public int OutPos; + public TUartTRxData[] Buf; + public TUartTxBuff() + { + InPos = 0; + OutPos = 0; + Buf = new TUartTRxData[50]; + for (int i = 0; i < 50; i++) + { + Buf[i] = new TUartTRxData(); + } + } + + public bool CheckBuff() + { + if (InPos != OutPos) { return true; } + else { return false; } + } + public void PutBuff(TUartTRxData UartTxData) + { + if (UartTxData != null) + { + Buf[InPos++] = UartTxData.DeepCopy(); + InPos %= 50; + } + } + public TUartTRxData GetBuff() + { + TUartTRxData result = null; + + if (InPos != OutPos) + { + result = Buf[OutPos++].DeepCopy(); + OutPos %= 50; + } + return result; + } + } +} diff --git a/LFP_Manager/DataStructure/csDbConstData.cs b/LFP_Manager/DataStructure/csDbConstData.cs new file mode 100644 index 0000000..07d7057 --- /dev/null +++ b/LFP_Manager/DataStructure/csDbConstData.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace LFP_Manager.DataStructure +{ + class csDbConstData + { + public class DataBase + { + public static string FileName = @"\db\AlamrHistory.db"; + public static string TableName = "History"; + public static string CreateTable = + "CREATE TABLE " + TableName + " (" + + "HTime DateTime NOT NULL, " + + "model varchar(10), " + + "sno int, " + + "alarm_name varchar(20), " + + "alarm_code int, " + + "flag_name varchar(20), " + + "flag int, " + + "param1 float, " + + "param2 float, " + + ");"; + } + + public static readonly int ALARM_NAME_SIZE = 9; + + public class DB_ALARM + { + public static int CELL_UNDER_VOLTAGE = 0; + public static int CELL_OVER_VOLTAGE = 1; + public static int SYSTEM_UNDER_VOLTAGE = 2; + public static int SYSTEM_OVER_VOLTAGAE = 3; + public static int HIGH_TEMPERATURE = 4; + public static int LOW_TEMPERATURE = 5; + public static int CHARGE_OVER_CURRENT = 6; + public static int DISCHARGE_OVER_CURRENT = 7; + public static int LOW_SOC = 8; + + public static readonly string[] ALARM_NAME = + { + "CELL UNDER VOLTAGE", + "CELL OVER VOLTAGE", + "SYSTEM UNDER VOLTAGE", + "SYSTEM OVER VOLTAGAE", + "HIGH TEMPERATURE", + "LOW TEMPERATURE", + "CHARGE OVER CURRENT", + "DISCHARGE OVER CURRENT", + "LOW SOC", + }; + + public static int FLAG_RELEASE = 0; + public static int FLAG_WARNING = 1; + public static int FLAG_TRIP = 2; + + public static readonly string[] FLAG_NAME = + { + "RELEASE", + "WARNING", + "FAULT", + }; + } + } +} diff --git a/LFP_Manager/Form1.Designer.cs b/LFP_Manager/Form1.Designer.cs new file mode 100644 index 0000000..24932dc --- /dev/null +++ b/LFP_Manager/Form1.Designer.cs @@ -0,0 +1,47 @@ +namespace snmp_sim +{ + partial class fmMain + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.SuspendLayout(); + // + // fmMain + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(284, 262); + this.Name = "fmMain"; + this.Text = "Form1"; + this.ResumeLayout(false); + + } + + #endregion + } +} + diff --git a/LFP_Manager/Form1.cs b/LFP_Manager/Form1.cs new file mode 100644 index 0000000..9a387a9 --- /dev/null +++ b/LFP_Manager/Form1.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace snmp_sim +{ + public partial class fmMain : Form + { + public fmMain() + { + InitializeComponent(); + } + } +} diff --git a/LFP_Manager/Form1.resx b/LFP_Manager/Form1.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/LFP_Manager/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LFP_Manager/Forms/FmxChangePw.Designer.cs b/LFP_Manager/Forms/FmxChangePw.Designer.cs new file mode 100644 index 0000000..111805f --- /dev/null +++ b/LFP_Manager/Forms/FmxChangePw.Designer.cs @@ -0,0 +1,374 @@ +namespace LFP_Manager.Forms +{ + partial class FmxChangePw + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.Root = new DevExpress.XtraLayout.LayoutControlGroup(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.RbMaster = new System.Windows.Forms.RadioButton(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.RbEngineer = new System.Windows.Forms.RadioButton(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.RbTechnician = new System.Windows.Forms.RadioButton(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.LbCurrentLevel = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.TePW = new DevExpress.XtraEditors.TextEdit(); + this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.BtnApply = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + this.BtnClose = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + this.TmrDisplay = new System.Windows.Forms.Timer(this.components); + this.RbUser = new System.Windows.Forms.RadioButton(); + this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.LbCurrentLevel)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TePW.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.RbUser); + this.layoutControl1.Controls.Add(this.BtnClose); + this.layoutControl1.Controls.Add(this.BtnApply); + this.layoutControl1.Controls.Add(this.TePW); + this.layoutControl1.Controls.Add(this.RbTechnician); + this.layoutControl1.Controls.Add(this.RbEngineer); + this.layoutControl1.Controls.Add(this.RbMaster); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(751, 0, 650, 400); + this.layoutControl1.Root = this.Root; + this.layoutControl1.Size = new System.Drawing.Size(500, 233); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // Root + // + this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.Root.GroupBordersVisible = false; + this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.emptySpaceItem1, + this.layoutControlGroup1, + this.layoutControlGroup2, + this.layoutControlGroup3, + this.layoutControlItem5, + this.layoutControlItem6}); + this.Root.Name = "Root"; + this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.Root.Size = new System.Drawing.Size(500, 233); + this.Root.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.Location = new System.Drawing.Point(0, 176); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(498, 16); + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlGroup1 + // + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem2, + this.layoutControlItem1, + this.layoutControlItem3, + this.layoutControlItem7}); + this.layoutControlGroup1.Location = new System.Drawing.Point(0, 61); + this.layoutControlGroup1.Name = "layoutControlGroup1"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup1.Size = new System.Drawing.Size(498, 58); + this.layoutControlGroup1.Text = "Control Level"; + // + // RbMaster + // + this.RbMaster.Location = new System.Drawing.Point(7, 89); + this.RbMaster.Name = "RbMaster"; + this.RbMaster.Size = new System.Drawing.Size(118, 25); + this.RbMaster.TabIndex = 8; + this.RbMaster.TabStop = true; + this.RbMaster.Text = "Master"; + this.RbMaster.UseVisualStyleBackColor = true; + this.RbMaster.CheckedChanged += new System.EventHandler(this.RbMaster_CheckedChanged); + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.RbMaster; + this.layoutControlItem2.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem2.MaxSize = new System.Drawing.Size(0, 29); + this.layoutControlItem2.MinSize = new System.Drawing.Size(24, 29); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(122, 29); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // RbEngineer + // + this.RbEngineer.Location = new System.Drawing.Point(129, 89); + this.RbEngineer.Name = "RbEngineer"; + this.RbEngineer.Size = new System.Drawing.Size(119, 25); + this.RbEngineer.TabIndex = 9; + this.RbEngineer.TabStop = true; + this.RbEngineer.Text = "Engineer"; + this.RbEngineer.UseVisualStyleBackColor = true; + this.RbEngineer.CheckedChanged += new System.EventHandler(this.RbEngineer_CheckedChanged); + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.RbEngineer; + this.layoutControlItem1.Location = new System.Drawing.Point(122, 0); + this.layoutControlItem1.MinSize = new System.Drawing.Size(24, 29); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(123, 29); + this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // RbTechnician + // + this.RbTechnician.Location = new System.Drawing.Point(252, 89); + this.RbTechnician.Name = "RbTechnician"; + this.RbTechnician.Size = new System.Drawing.Size(118, 25); + this.RbTechnician.TabIndex = 10; + this.RbTechnician.TabStop = true; + this.RbTechnician.Text = "Technician"; + this.RbTechnician.UseVisualStyleBackColor = true; + this.RbTechnician.CheckedChanged += new System.EventHandler(this.RbTechnician_CheckedChanged); + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.RbTechnician; + this.layoutControlItem3.Location = new System.Drawing.Point(245, 0); + this.layoutControlItem3.MinSize = new System.Drawing.Size(24, 29); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(122, 29); + this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextVisible = false; + // + // LbCurrentLevel + // + this.LbCurrentLevel.AllowHotTrack = false; + this.LbCurrentLevel.Location = new System.Drawing.Point(0, 0); + this.LbCurrentLevel.MaxSize = new System.Drawing.Size(0, 32); + this.LbCurrentLevel.MinSize = new System.Drawing.Size(126, 32); + this.LbCurrentLevel.Name = "LbCurrentLevel"; + this.LbCurrentLevel.Size = new System.Drawing.Size(490, 32); + this.LbCurrentLevel.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.LbCurrentLevel.Text = " Current Level: "; + this.LbCurrentLevel.TextSize = new System.Drawing.Size(85, 14); + // + // layoutControlGroup2 + // + this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.LbCurrentLevel}); + this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup2.Name = "layoutControlGroup2"; + this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup2.Size = new System.Drawing.Size(498, 61); + this.layoutControlGroup2.Text = "Control Level"; + // + // TePW + // + this.TePW.Location = new System.Drawing.Point(7, 147); + this.TePW.Name = "TePW"; + this.TePW.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11F); + this.TePW.Properties.Appearance.Options.UseFont = true; + this.TePW.Properties.Appearance.Options.UseTextOptions = true; + this.TePW.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.TePW.Properties.PasswordChar = '*'; + this.TePW.Size = new System.Drawing.Size(486, 24); + this.TePW.StyleController = this.layoutControl1; + this.TePW.TabIndex = 11; + // + // layoutControlItem4 + // + this.layoutControlItem4.Control = this.TePW; + this.layoutControlItem4.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 28); + this.layoutControlItem4.MinSize = new System.Drawing.Size(171, 28); + this.layoutControlItem4.Name = "layoutControlItem4"; + this.layoutControlItem4.Size = new System.Drawing.Size(490, 28); + this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem4.TextVisible = false; + // + // layoutControlGroup3 + // + this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem4}); + this.layoutControlGroup3.Location = new System.Drawing.Point(0, 119); + this.layoutControlGroup3.Name = "layoutControlGroup3"; + this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup3.Size = new System.Drawing.Size(498, 57); + this.layoutControlGroup3.Text = "Password"; + // + // BtnApply + // + this.BtnApply.Location = new System.Drawing.Point(3, 195); + this.BtnApply.Name = "BtnApply"; + this.BtnApply.Size = new System.Drawing.Size(245, 35); + this.BtnApply.StyleController = this.layoutControl1; + this.BtnApply.TabIndex = 12; + this.BtnApply.Text = "Apply"; + this.BtnApply.Click += new System.EventHandler(this.BtnApply_Click); + // + // layoutControlItem5 + // + this.layoutControlItem5.Control = this.BtnApply; + this.layoutControlItem5.Location = new System.Drawing.Point(0, 192); + this.layoutControlItem5.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem5.Name = "layoutControlItem5"; + this.layoutControlItem5.Size = new System.Drawing.Size(249, 39); + this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem5.TextVisible = false; + // + // BtnClose + // + this.BtnClose.Location = new System.Drawing.Point(252, 195); + this.BtnClose.Name = "BtnClose"; + this.BtnClose.Size = new System.Drawing.Size(245, 35); + this.BtnClose.StyleController = this.layoutControl1; + this.BtnClose.TabIndex = 13; + this.BtnClose.Text = "Close"; + this.BtnClose.Click += new System.EventHandler(this.BtnClose_Click); + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.BtnClose; + this.layoutControlItem6.Location = new System.Drawing.Point(249, 192); + this.layoutControlItem6.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(249, 39); + this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem6.TextVisible = false; + // + // TmrDisplay + // + this.TmrDisplay.Interval = 500; + this.TmrDisplay.Tick += new System.EventHandler(this.TmrDisplay_Tick); + // + // RbUser + // + this.RbUser.Location = new System.Drawing.Point(374, 89); + this.RbUser.Name = "RbUser"; + this.RbUser.Size = new System.Drawing.Size(119, 25); + this.RbUser.TabIndex = 14; + this.RbUser.TabStop = true; + this.RbUser.Text = "User"; + this.RbUser.UseVisualStyleBackColor = true; + this.RbUser.CheckedChanged += new System.EventHandler(this.RbUser_CheckedChanged); + // + // layoutControlItem7 + // + this.layoutControlItem7.Control = this.RbUser; + this.layoutControlItem7.Location = new System.Drawing.Point(367, 0); + this.layoutControlItem7.Name = "layoutControlItem7"; + this.layoutControlItem7.Size = new System.Drawing.Size(123, 29); + this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem7.TextVisible = false; + // + // FmxLevelConfig + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(500, 233); + this.Controls.Add(this.layoutControl1); + this.IconOptions.Image = global::LFP_Manager.Properties.Resources.AMO_LOGO1; + this.Name = "FmxLevelConfig"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Control Level Config"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FmxLevelConfig_FormClosing); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.LbCurrentLevel)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TePW.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private System.Windows.Forms.RadioButton RbTechnician; + private System.Windows.Forms.RadioButton RbEngineer; + private System.Windows.Forms.RadioButton RbMaster; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraLayout.SimpleLabelItem LbCurrentLevel; + private DevExpress.XtraEditors.TextEdit TePW; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private DevExpress.XtraEditors.SimpleButton BtnClose; + private DevExpress.XtraEditors.SimpleButton BtnApply; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private System.Windows.Forms.Timer TmrDisplay; + private System.Windows.Forms.RadioButton RbUser; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7; + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/FmxChangePw.cs b/LFP_Manager/Forms/FmxChangePw.cs new file mode 100644 index 0000000..685b299 --- /dev/null +++ b/LFP_Manager/Forms/FmxChangePw.cs @@ -0,0 +1,184 @@ +using DevExpress.XtraEditors; +using DevExpress.XtraPrinting.Native.LayoutAdjustment; +using LFP_Manager.DataStructure; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace LFP_Manager.Forms +{ + public partial class FmxChangePw : DevExpress.XtraEditors.XtraForm + { + #region VARIABLES + + CommConfig Config; + + #endregion + + #region CONSTRUCTORS + public FmxChangePw() + { + InitializeComponent(); + } + + public FmxChangePw(CommConfig aConfig) + { + InitializeComponent(); + + Config = aConfig; + + switch (Config.ControlLevel) + { + case 0: // User Level + RbUser.Checked = true; + break; + case 1: // Technician Level + RbTechnician.Checked = true; + break; + case 2: // Engineer Level + RbEngineer.Checked = true; + break; + case 3: // Master Level + RbMaster.Checked = true; + break; + default: // User Level + RbUser.Checked = true; + break; + } + DisplayStatus(); + TmrDisplay.Start(); + } + #endregion + + #region BUTTON EVENT + private void BtnClose_Click(object sender, EventArgs e) + { + Close(); + } + private void BtnApply_Click(object sender, EventArgs e) + { + string cPW = TePW.Text; + + if (RbMaster.Checked) + { + if (Config.MasterPw == cPW) + { + Config.ControlLevel = 3; + MessageBox.Show("Complete change to Mastar Level", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + MessageBox.Show("Wrong password for Master Level", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + else if (RbEngineer.Checked) + { + if (Config.EngineerPw == cPW) + { + Config.ControlLevel = 2; + MessageBox.Show("Complete change to Engineer Level", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + MessageBox.Show("Wrong password for Engineer Level", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + else if (RbTechnician.Checked) + { + if (Config.TechnicianPw == cPW) + { + Config.ControlLevel = 1; + MessageBox.Show("Complete change to Technician Level", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + MessageBox.Show("Wrong password for Technician Level", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + else if (RbUser.Checked) + { + Config.ControlLevel = 0; + } + } + #endregion + + #region DISPLAY FUNCTION + private void DisplayStatus() + { + switch (Config.ControlLevel) + { + case 0: // User Level + LbCurrentLevel.Text = " Current Level: User Level"; + break; + case 1: // Technician Level + LbCurrentLevel.Text = " Current Level: Technician Level"; + break; + case 2: // Engineer Level + LbCurrentLevel.Text = " Current Level: Engineer Level"; + break; + case 3: // Master Level + LbCurrentLevel.Text = " Current Level: Master Level"; + break; + } + } + #endregion + + #region FORM EVENT + private void FmxLevelConfig_FormClosing(object sender, FormClosingEventArgs e) + { + TmrDisplay.Stop(); + } + #endregion + + #region COMPONENT EVENT + private void RbMaster_CheckedChanged(object sender, EventArgs e) + { + if (RbMaster.Checked) + { + TePW.Enabled = true; + } + TePW.Text = ""; + } + + private void RbEngineer_CheckedChanged(object sender, EventArgs e) + { + if (RbEngineer.Checked) + { + TePW.Enabled = true; + } + TePW.Text = ""; + } + + private void RbTechnician_CheckedChanged(object sender, EventArgs e) + { + if (RbTechnician.Checked) + { + TePW.Enabled = true; + } + TePW.Text = ""; + } + + private void RbUser_CheckedChanged(object sender, EventArgs e) + { + if (RbUser.Checked) + { + TePW.Enabled = false; + } + TePW.Text = ""; + } + #endregion + + #region TIMER EVENT + private void TmrDisplay_Tick(object sender, EventArgs e) + { + DisplayStatus(); + } + #endregion + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/FmxChangePw.resx b/LFP_Manager/Forms/FmxChangePw.resx new file mode 100644 index 0000000..c9162a8 --- /dev/null +++ b/LFP_Manager/Forms/FmxChangePw.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/LFP_Manager/Forms/FmxInformation.Designer.cs b/LFP_Manager/Forms/FmxInformation.Designer.cs new file mode 100644 index 0000000..f6bdce1 --- /dev/null +++ b/LFP_Manager/Forms/FmxInformation.Designer.cs @@ -0,0 +1,195 @@ +namespace LFP_Manager.Forms +{ + partial class FmxInformation + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.Root = new DevExpress.XtraLayout.LayoutControlGroup(); + this.LbDeviceId = new DevExpress.XtraEditors.LabelControl(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.BtnClose = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.TmrDisplay = new System.Windows.Forms.Timer(this.components); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.BtnClose); + this.layoutControl1.Controls.Add(this.LbDeviceId); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1018, 137, 650, 400); + this.layoutControl1.Root = this.Root; + this.layoutControl1.Size = new System.Drawing.Size(767, 398); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // Root + // + this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.Root.GroupBordersVisible = false; + this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.emptySpaceItem1, + this.layoutControlItem2, + this.layoutControlGroup1}); + this.Root.Name = "Root"; + this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.Root.Size = new System.Drawing.Size(767, 398); + this.Root.TextVisible = false; + // + // LbDeviceId + // + this.LbDeviceId.Appearance.Font = new System.Drawing.Font("Tahoma", 20F); + this.LbDeviceId.Appearance.Options.UseFont = true; + this.LbDeviceId.Appearance.Options.UseTextOptions = true; + this.LbDeviceId.Appearance.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Top; + this.LbDeviceId.Location = new System.Drawing.Point(23, 28); + this.LbDeviceId.Name = "LbDeviceId"; + this.LbDeviceId.Size = new System.Drawing.Size(737, 332); + this.LbDeviceId.StyleController = this.layoutControl1; + this.LbDeviceId.TabIndex = 4; + this.LbDeviceId.Text = "-"; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.LbDeviceId; + this.layoutControlItem1.Location = new System.Drawing.Point(16, 0); + this.layoutControlItem1.MinSize = new System.Drawing.Size(74, 18); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(741, 336); + this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.Location = new System.Drawing.Point(0, 365); + this.emptySpaceItem1.MinSize = new System.Drawing.Size(104, 24); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(648, 31); + this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // BtnClose + // + this.BtnClose.Location = new System.Drawing.Point(651, 368); + this.BtnClose.Name = "BtnClose"; + this.BtnClose.Size = new System.Drawing.Size(113, 27); + this.BtnClose.StyleController = this.layoutControl1; + this.BtnClose.TabIndex = 5; + this.BtnClose.Text = "Close"; + this.BtnClose.Click += new System.EventHandler(this.BtnClose_Click); + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.BtnClose; + this.layoutControlItem2.Location = new System.Drawing.Point(648, 365); + this.layoutControlItem2.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(117, 31); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // emptySpaceItem2 + // + this.emptySpaceItem2.AllowHotTrack = false; + this.emptySpaceItem2.Location = new System.Drawing.Point(0, 0); + this.emptySpaceItem2.MinSize = new System.Drawing.Size(10, 24); + this.emptySpaceItem2.Name = "emptySpaceItem2"; + this.emptySpaceItem2.Size = new System.Drawing.Size(16, 336); + this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0); + // + // TmrDisplay + // + this.TmrDisplay.Enabled = true; + this.TmrDisplay.Interval = 500; + this.TmrDisplay.Tick += new System.EventHandler(this.TmrDisplay_Tick); + // + // layoutControlGroup1 + // + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.emptySpaceItem2, + this.layoutControlItem1}); + this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup1.Name = "layoutControlGroup1"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup1.Size = new System.Drawing.Size(765, 365); + this.layoutControlGroup1.Text = "Device ID"; + // + // FmxInformation + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(767, 398); + this.Controls.Add(this.layoutControl1); + this.IconOptions.Image = global::LFP_Manager.Properties.Resources.AMO_LOGO1; + this.Name = "FmxInformation"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Information"; + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private DevExpress.XtraEditors.SimpleButton BtnClose; + private DevExpress.XtraEditors.LabelControl LbDeviceId; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2; + private System.Windows.Forms.Timer TmrDisplay; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/FmxInformation.cs b/LFP_Manager/Forms/FmxInformation.cs new file mode 100644 index 0000000..dbc3a28 --- /dev/null +++ b/LFP_Manager/Forms/FmxInformation.cs @@ -0,0 +1,66 @@ +using DevExpress.XtraEditors; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +using LFP_Manager.DataStructure; + +namespace LFP_Manager.Forms +{ + public partial class FmxInformation : DevExpress.XtraEditors.XtraForm + { + #region VARIABLES + private int sID; + private CommConfig Config; + private DeviceSystemData SystemData; + #endregion + + #region CONSTRUCTORS + public FmxInformation(int SystemID, CommConfig aConfig, ref DeviceSystemData aSystemData) + { + InitializeComponent(); + + sID = SystemID; + Config = aConfig; + SystemData = aSystemData; + } + #endregion + + #region TIMER EVENT + private void TmrDisplay_Tick(object sender, EventArgs e) + { + DisplayDeviceID(); + } + #endregion + + #region DISPLAY FUNCTION + private void DisplayDeviceID() + { + string tmp = ""; + tmp += string.Format("Vendor Name : {0}\r\n", SystemData.Information.VendorName); + tmp += string.Format("Product Code : {0}\r\n", SystemData.Information.ProductCode); + tmp += string.Format("Major Minor Revision : {0}\r\n", SystemData.Information.MajorMinorRev); + tmp += string.Format("Model Name : {0}\r\n", SystemData.Information.ModelName); + tmp += string.Format("Hardware Serial Number : {0}\r\n", SystemData.Information.HwSerialNumber); + tmp += string.Format("Hardware Product Revision : {0}\r\n", SystemData.Information.HwProductRev); + tmp += string.Format("Manufacturing date : {0}\r\n", SystemData.Information.ManufacturingDate); + tmp += string.Format("SW Product Revision : {0}\r\n", SystemData.Information.SwProductRev); + + LbDeviceId.Text = tmp; + } + #endregion + + #region BUTTON EVENT + private void BtnClose_Click(object sender, EventArgs e) + { + Close(); + } + #endregion + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/FmxInformation.resx b/LFP_Manager/Forms/FmxInformation.resx new file mode 100644 index 0000000..c9162a8 --- /dev/null +++ b/LFP_Manager/Forms/FmxInformation.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/LFP_Manager/Forms/FmxLevelConfig.Designer.cs b/LFP_Manager/Forms/FmxLevelConfig.Designer.cs new file mode 100644 index 0000000..dac7b1a --- /dev/null +++ b/LFP_Manager/Forms/FmxLevelConfig.Designer.cs @@ -0,0 +1,374 @@ +namespace LFP_Manager.Forms +{ + partial class FmxLevelConfig + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.Root = new DevExpress.XtraLayout.LayoutControlGroup(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.RbMaster = new System.Windows.Forms.RadioButton(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.RbEngineer = new System.Windows.Forms.RadioButton(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.RbTechnician = new System.Windows.Forms.RadioButton(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.LbCurrentLevel = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.TePW = new DevExpress.XtraEditors.TextEdit(); + this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.BtnApply = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + this.BtnClose = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + this.TmrDisplay = new System.Windows.Forms.Timer(this.components); + this.RbUser = new System.Windows.Forms.RadioButton(); + this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.LbCurrentLevel)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TePW.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.RbUser); + this.layoutControl1.Controls.Add(this.BtnClose); + this.layoutControl1.Controls.Add(this.BtnApply); + this.layoutControl1.Controls.Add(this.TePW); + this.layoutControl1.Controls.Add(this.RbTechnician); + this.layoutControl1.Controls.Add(this.RbEngineer); + this.layoutControl1.Controls.Add(this.RbMaster); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(751, 0, 650, 400); + this.layoutControl1.Root = this.Root; + this.layoutControl1.Size = new System.Drawing.Size(500, 233); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // Root + // + this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.Root.GroupBordersVisible = false; + this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.emptySpaceItem1, + this.layoutControlGroup1, + this.layoutControlGroup2, + this.layoutControlGroup3, + this.layoutControlItem5, + this.layoutControlItem6}); + this.Root.Name = "Root"; + this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.Root.Size = new System.Drawing.Size(500, 233); + this.Root.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.Location = new System.Drawing.Point(0, 176); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(498, 16); + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlGroup1 + // + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem2, + this.layoutControlItem1, + this.layoutControlItem3, + this.layoutControlItem7}); + this.layoutControlGroup1.Location = new System.Drawing.Point(0, 61); + this.layoutControlGroup1.Name = "layoutControlGroup1"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup1.Size = new System.Drawing.Size(498, 58); + this.layoutControlGroup1.Text = "Control Level"; + // + // RbMaster + // + this.RbMaster.Location = new System.Drawing.Point(7, 89); + this.RbMaster.Name = "RbMaster"; + this.RbMaster.Size = new System.Drawing.Size(118, 25); + this.RbMaster.TabIndex = 8; + this.RbMaster.TabStop = true; + this.RbMaster.Text = "Master"; + this.RbMaster.UseVisualStyleBackColor = true; + this.RbMaster.CheckedChanged += new System.EventHandler(this.RbMaster_CheckedChanged); + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.RbMaster; + this.layoutControlItem2.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem2.MaxSize = new System.Drawing.Size(0, 29); + this.layoutControlItem2.MinSize = new System.Drawing.Size(24, 29); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(122, 29); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // RbEngineer + // + this.RbEngineer.Location = new System.Drawing.Point(129, 89); + this.RbEngineer.Name = "RbEngineer"; + this.RbEngineer.Size = new System.Drawing.Size(119, 25); + this.RbEngineer.TabIndex = 9; + this.RbEngineer.TabStop = true; + this.RbEngineer.Text = "Engineer"; + this.RbEngineer.UseVisualStyleBackColor = true; + this.RbEngineer.CheckedChanged += new System.EventHandler(this.RbEngineer_CheckedChanged); + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.RbEngineer; + this.layoutControlItem1.Location = new System.Drawing.Point(122, 0); + this.layoutControlItem1.MinSize = new System.Drawing.Size(24, 29); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(123, 29); + this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // RbTechnician + // + this.RbTechnician.Location = new System.Drawing.Point(252, 89); + this.RbTechnician.Name = "RbTechnician"; + this.RbTechnician.Size = new System.Drawing.Size(118, 25); + this.RbTechnician.TabIndex = 10; + this.RbTechnician.TabStop = true; + this.RbTechnician.Text = "Technician"; + this.RbTechnician.UseVisualStyleBackColor = true; + this.RbTechnician.CheckedChanged += new System.EventHandler(this.RbTechnician_CheckedChanged); + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.RbTechnician; + this.layoutControlItem3.Location = new System.Drawing.Point(245, 0); + this.layoutControlItem3.MinSize = new System.Drawing.Size(24, 29); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(122, 29); + this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextVisible = false; + // + // LbCurrentLevel + // + this.LbCurrentLevel.AllowHotTrack = false; + this.LbCurrentLevel.Location = new System.Drawing.Point(0, 0); + this.LbCurrentLevel.MaxSize = new System.Drawing.Size(0, 32); + this.LbCurrentLevel.MinSize = new System.Drawing.Size(126, 32); + this.LbCurrentLevel.Name = "LbCurrentLevel"; + this.LbCurrentLevel.Size = new System.Drawing.Size(490, 32); + this.LbCurrentLevel.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.LbCurrentLevel.Text = " Current Level: "; + this.LbCurrentLevel.TextSize = new System.Drawing.Size(85, 14); + // + // layoutControlGroup2 + // + this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.LbCurrentLevel}); + this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup2.Name = "layoutControlGroup2"; + this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup2.Size = new System.Drawing.Size(498, 61); + this.layoutControlGroup2.Text = "Control Level"; + // + // TePW + // + this.TePW.Location = new System.Drawing.Point(7, 147); + this.TePW.Name = "TePW"; + this.TePW.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 11F); + this.TePW.Properties.Appearance.Options.UseFont = true; + this.TePW.Properties.Appearance.Options.UseTextOptions = true; + this.TePW.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.TePW.Properties.PasswordChar = '*'; + this.TePW.Size = new System.Drawing.Size(486, 24); + this.TePW.StyleController = this.layoutControl1; + this.TePW.TabIndex = 11; + // + // layoutControlItem4 + // + this.layoutControlItem4.Control = this.TePW; + this.layoutControlItem4.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 28); + this.layoutControlItem4.MinSize = new System.Drawing.Size(171, 28); + this.layoutControlItem4.Name = "layoutControlItem4"; + this.layoutControlItem4.Size = new System.Drawing.Size(490, 28); + this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem4.TextVisible = false; + // + // layoutControlGroup3 + // + this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem4}); + this.layoutControlGroup3.Location = new System.Drawing.Point(0, 119); + this.layoutControlGroup3.Name = "layoutControlGroup3"; + this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup3.Size = new System.Drawing.Size(498, 57); + this.layoutControlGroup3.Text = "Password"; + // + // BtnApply + // + this.BtnApply.Location = new System.Drawing.Point(3, 195); + this.BtnApply.Name = "BtnApply"; + this.BtnApply.Size = new System.Drawing.Size(245, 35); + this.BtnApply.StyleController = this.layoutControl1; + this.BtnApply.TabIndex = 12; + this.BtnApply.Text = "Apply"; + this.BtnApply.Click += new System.EventHandler(this.BtnApply_Click); + // + // layoutControlItem5 + // + this.layoutControlItem5.Control = this.BtnApply; + this.layoutControlItem5.Location = new System.Drawing.Point(0, 192); + this.layoutControlItem5.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem5.Name = "layoutControlItem5"; + this.layoutControlItem5.Size = new System.Drawing.Size(249, 39); + this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem5.TextVisible = false; + // + // BtnClose + // + this.BtnClose.Location = new System.Drawing.Point(252, 195); + this.BtnClose.Name = "BtnClose"; + this.BtnClose.Size = new System.Drawing.Size(245, 35); + this.BtnClose.StyleController = this.layoutControl1; + this.BtnClose.TabIndex = 13; + this.BtnClose.Text = "Close"; + this.BtnClose.Click += new System.EventHandler(this.BtnClose_Click); + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.BtnClose; + this.layoutControlItem6.Location = new System.Drawing.Point(249, 192); + this.layoutControlItem6.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(249, 39); + this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem6.TextVisible = false; + // + // TmrDisplay + // + this.TmrDisplay.Interval = 500; + this.TmrDisplay.Tick += new System.EventHandler(this.TmrDisplay_Tick); + // + // RbUser + // + this.RbUser.Location = new System.Drawing.Point(374, 89); + this.RbUser.Name = "RbUser"; + this.RbUser.Size = new System.Drawing.Size(119, 25); + this.RbUser.TabIndex = 14; + this.RbUser.TabStop = true; + this.RbUser.Text = "User"; + this.RbUser.UseVisualStyleBackColor = true; + this.RbUser.CheckedChanged += new System.EventHandler(this.RbUser_CheckedChanged); + // + // layoutControlItem7 + // + this.layoutControlItem7.Control = this.RbUser; + this.layoutControlItem7.Location = new System.Drawing.Point(367, 0); + this.layoutControlItem7.Name = "layoutControlItem7"; + this.layoutControlItem7.Size = new System.Drawing.Size(123, 29); + this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem7.TextVisible = false; + // + // FmxLevelConfig + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(500, 233); + this.Controls.Add(this.layoutControl1); + this.IconOptions.Image = global::LFP_Manager.Properties.Resources.AMO_LOGO1; + this.Name = "FmxLevelConfig"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Control Level Config"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FmxLevelConfig_FormClosing); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.LbCurrentLevel)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TePW.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private System.Windows.Forms.RadioButton RbTechnician; + private System.Windows.Forms.RadioButton RbEngineer; + private System.Windows.Forms.RadioButton RbMaster; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraLayout.SimpleLabelItem LbCurrentLevel; + private DevExpress.XtraEditors.TextEdit TePW; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private DevExpress.XtraEditors.SimpleButton BtnClose; + private DevExpress.XtraEditors.SimpleButton BtnApply; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private System.Windows.Forms.Timer TmrDisplay; + private System.Windows.Forms.RadioButton RbUser; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7; + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/FmxLevelConfig.cs b/LFP_Manager/Forms/FmxLevelConfig.cs new file mode 100644 index 0000000..ba1bbe9 --- /dev/null +++ b/LFP_Manager/Forms/FmxLevelConfig.cs @@ -0,0 +1,184 @@ +using DevExpress.XtraEditors; +using DevExpress.XtraPrinting.Native.LayoutAdjustment; +using LFP_Manager.DataStructure; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace LFP_Manager.Forms +{ + public partial class FmxLevelConfig : DevExpress.XtraEditors.XtraForm + { + #region VARIABLES + + CommConfig Config; + + #endregion + + #region CONSTRUCTORS + public FmxLevelConfig() + { + InitializeComponent(); + } + + public FmxLevelConfig(CommConfig aConfig) + { + InitializeComponent(); + + Config = aConfig; + + switch (Config.ControlLevel) + { + case 0: // User Level + RbUser.Checked = true; + break; + case 1: // Technician Level + RbTechnician.Checked = true; + break; + case 2: // Engineer Level + RbEngineer.Checked = true; + break; + case 3: // Master Level + RbMaster.Checked = true; + break; + default: // User Level + RbUser.Checked = true; + break; + } + DisplayStatus(); + TmrDisplay.Start(); + } + #endregion + + #region BUTTON EVENT + private void BtnClose_Click(object sender, EventArgs e) + { + Close(); + } + private void BtnApply_Click(object sender, EventArgs e) + { + string cPW = TePW.Text; + + if (RbMaster.Checked) + { + if (Config.MasterPw == cPW) + { + Config.ControlLevel = 3; + MessageBox.Show("Complete change to Mastar Level", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + MessageBox.Show("Wrong password for Master Level", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + else if (RbEngineer.Checked) + { + if (Config.EngineerPw == cPW) + { + Config.ControlLevel = 2; + MessageBox.Show("Complete change to Engineer Level", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + MessageBox.Show("Wrong password for Engineer Level", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + else if (RbTechnician.Checked) + { + if (Config.TechnicianPw == cPW) + { + Config.ControlLevel = 1; + MessageBox.Show("Complete change to Technician Level", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + MessageBox.Show("Wrong password for Technician Level", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + else if (RbUser.Checked) + { + Config.ControlLevel = 0; + } + } + #endregion + + #region DISPLAY FUNCTION + private void DisplayStatus() + { + switch (Config.ControlLevel) + { + case 0: // User Level + LbCurrentLevel.Text = " Current Level: User Level"; + break; + case 1: // Technician Level + LbCurrentLevel.Text = " Current Level: Technician Level"; + break; + case 2: // Engineer Level + LbCurrentLevel.Text = " Current Level: Engineer Level"; + break; + case 3: // Master Level + LbCurrentLevel.Text = " Current Level: Master Level"; + break; + } + } + #endregion + + #region FORM EVENT + private void FmxLevelConfig_FormClosing(object sender, FormClosingEventArgs e) + { + TmrDisplay.Stop(); + } + #endregion + + #region COMPONENT EVENT + private void RbMaster_CheckedChanged(object sender, EventArgs e) + { + if (RbMaster.Checked) + { + TePW.Enabled = true; + } + TePW.Text = ""; + } + + private void RbEngineer_CheckedChanged(object sender, EventArgs e) + { + if (RbEngineer.Checked) + { + TePW.Enabled = true; + } + TePW.Text = ""; + } + + private void RbTechnician_CheckedChanged(object sender, EventArgs e) + { + if (RbTechnician.Checked) + { + TePW.Enabled = true; + } + TePW.Text = ""; + } + + private void RbUser_CheckedChanged(object sender, EventArgs e) + { + if (RbUser.Checked) + { + TePW.Enabled = false; + } + TePW.Text = ""; + } + #endregion + + #region TIMER EVENT + private void TmrDisplay_Tick(object sender, EventArgs e) + { + DisplayStatus(); + } + #endregion + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/FmxLevelConfig.resx b/LFP_Manager/Forms/FmxLevelConfig.resx new file mode 100644 index 0000000..c9162a8 --- /dev/null +++ b/LFP_Manager/Forms/FmxLevelConfig.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/LFP_Manager/Forms/FmxPassword.Designer.cs b/LFP_Manager/Forms/FmxPassword.Designer.cs new file mode 100644 index 0000000..a359b48 --- /dev/null +++ b/LFP_Manager/Forms/FmxPassword.Designer.cs @@ -0,0 +1,238 @@ +namespace LFP_Manager.Forms +{ + partial class FmxPassword + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.BtnCancel = new DevExpress.XtraEditors.SimpleButton(); + this.BtnOk = new DevExpress.XtraEditors.SimpleButton(); + this.TeResetPW = new DevExpress.XtraEditors.TextEdit(); + this.Root = new DevExpress.XtraLayout.LayoutControlGroup(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.emptySpaceItem4 = new DevExpress.XtraLayout.EmptySpaceItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.TeResetPW.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.BtnCancel); + this.layoutControl1.Controls.Add(this.BtnOk); + this.layoutControl1.Controls.Add(this.TeResetPW); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(804, 0, 650, 400); + this.layoutControl1.Root = this.Root; + this.layoutControl1.Size = new System.Drawing.Size(500, 206); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // BtnCancel + // + this.BtnCancel.Appearance.Font = new System.Drawing.Font("Tahoma", 10F); + this.BtnCancel.Appearance.Options.UseFont = true; + this.BtnCancel.Location = new System.Drawing.Point(246, 169); + this.BtnCancel.Name = "BtnCancel"; + this.BtnCancel.Size = new System.Drawing.Size(251, 34); + this.BtnCancel.StyleController = this.layoutControl1; + this.BtnCancel.TabIndex = 6; + this.BtnCancel.Text = "CANCEL"; + this.BtnCancel.Click += new System.EventHandler(this.BtnCancel_Click); + // + // BtnOk + // + this.BtnOk.Appearance.Font = new System.Drawing.Font("Tahoma", 10F); + this.BtnOk.Appearance.Options.UseFont = true; + this.BtnOk.Location = new System.Drawing.Point(3, 169); + this.BtnOk.Name = "BtnOk"; + this.BtnOk.Size = new System.Drawing.Size(239, 34); + this.BtnOk.StyleController = this.layoutControl1; + this.BtnOk.TabIndex = 5; + this.BtnOk.Text = "OK"; + this.BtnOk.Click += new System.EventHandler(this.BtnOk_Click); + // + // TeResetPW + // + this.TeResetPW.Location = new System.Drawing.Point(111, 71); + this.TeResetPW.Name = "TeResetPW"; + this.TeResetPW.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 12F); + this.TeResetPW.Properties.Appearance.Options.UseFont = true; + this.TeResetPW.Properties.Appearance.Options.UseTextOptions = true; + this.TeResetPW.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.TeResetPW.Properties.PasswordChar = '*'; + this.TeResetPW.Size = new System.Drawing.Size(282, 26); + this.TeResetPW.StyleController = this.layoutControl1; + this.TeResetPW.TabIndex = 4; + // + // Root + // + this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.Root.GroupBordersVisible = false; + this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.emptySpaceItem1, + this.layoutControlItem2, + this.layoutControlItem3, + this.layoutControlItem1, + this.emptySpaceItem2, + this.emptySpaceItem3, + this.emptySpaceItem4}); + this.Root.Name = "Root"; + this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.Root.Size = new System.Drawing.Size(500, 206); + this.Root.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.Location = new System.Drawing.Point(394, 68); + this.emptySpaceItem1.MinSize = new System.Drawing.Size(104, 24); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(104, 30); + this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.BtnOk; + this.layoutControlItem2.Location = new System.Drawing.Point(0, 166); + this.layoutControlItem2.MinSize = new System.Drawing.Size(42, 26); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(243, 38); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.BtnCancel; + this.layoutControlItem3.Location = new System.Drawing.Point(243, 166); + this.layoutControlItem3.MinSize = new System.Drawing.Size(56, 26); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(255, 38); + this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextVisible = false; + // + // layoutControlItem1 + // + this.layoutControlItem1.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 12F); + this.layoutControlItem1.AppearanceItemCaption.Options.UseFont = true; + this.layoutControlItem1.Control = this.TeResetPW; + this.layoutControlItem1.Location = new System.Drawing.Point(108, 68); + this.layoutControlItem1.MinSize = new System.Drawing.Size(188, 30); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(286, 30); + this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem1.Text = "Password"; + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // emptySpaceItem2 + // + this.emptySpaceItem2.AllowHotTrack = false; + this.emptySpaceItem2.Location = new System.Drawing.Point(0, 0); + this.emptySpaceItem2.MinSize = new System.Drawing.Size(104, 24); + this.emptySpaceItem2.Name = "emptySpaceItem2"; + this.emptySpaceItem2.Size = new System.Drawing.Size(498, 68); + this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0); + // + // emptySpaceItem3 + // + this.emptySpaceItem3.AllowHotTrack = false; + this.emptySpaceItem3.Location = new System.Drawing.Point(0, 98); + this.emptySpaceItem3.MinSize = new System.Drawing.Size(104, 24); + this.emptySpaceItem3.Name = "emptySpaceItem3"; + this.emptySpaceItem3.Size = new System.Drawing.Size(498, 68); + this.emptySpaceItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem3.TextSize = new System.Drawing.Size(0, 0); + // + // emptySpaceItem4 + // + this.emptySpaceItem4.AllowHotTrack = false; + this.emptySpaceItem4.Location = new System.Drawing.Point(0, 68); + this.emptySpaceItem4.Name = "emptySpaceItem4"; + this.emptySpaceItem4.Size = new System.Drawing.Size(108, 30); + this.emptySpaceItem4.TextSize = new System.Drawing.Size(0, 0); + // + // FmxPassword + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(500, 206); + this.Controls.Add(this.layoutControl1); + this.IconOptions.Image = global::LFP_Manager.Properties.Resources.AMO_LOGO1; + this.Name = "FmxPassword"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Reset Password"; + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.TeResetPW.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private DevExpress.XtraEditors.SimpleButton BtnOk; + private DevExpress.XtraEditors.TextEdit TeResetPW; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraEditors.SimpleButton BtnCancel; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem4; + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/FmxPassword.cs b/LFP_Manager/Forms/FmxPassword.cs new file mode 100644 index 0000000..a637c6a --- /dev/null +++ b/LFP_Manager/Forms/FmxPassword.cs @@ -0,0 +1,63 @@ +using DevExpress.Pdf.Native; +using DevExpress.XtraEditors; +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace LFP_Manager.Forms +{ + public partial class FmxPassword : DevExpress.XtraEditors.XtraForm + { + #region DELEGATE + public delegate void PasswordResut(int result); + #endregion + + #region VARIABLES + + private CommConfig Config; + + public event PasswordResut OnResult = null; + + #endregion + + #region CONSTRUCTORS + public FmxPassword(CommConfig aConfig) + { + InitializeComponent(); + + Config = aConfig; + } + #endregion + + #region BUTTON EVENT + private void BtnCancel_Click(object sender, EventArgs e) + { + this.DialogResult = DialogResult.Cancel; + Close(); + } + + private void BtnOk_Click(object sender, EventArgs e) + { + string resetPW = TeResetPW.Text; + + if (resetPW == "Delta Electronics") + { + this.DialogResult = DialogResult.OK; + Close(); + } + else + { + MessageBox.Show("Wrong Password - Try again", "Result", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + #endregion + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/FmxPassword.resx b/LFP_Manager/Forms/FmxPassword.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/LFP_Manager/Forms/FmxPassword.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LFP_Manager/Forms/FmxPasswordChange.Designer.cs b/LFP_Manager/Forms/FmxPasswordChange.Designer.cs new file mode 100644 index 0000000..e772be8 --- /dev/null +++ b/LFP_Manager/Forms/FmxPasswordChange.Designer.cs @@ -0,0 +1,481 @@ +namespace LFP_Manager.Forms +{ + partial class FmxPasswordChange + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.BtnResetPW = new DevExpress.XtraEditors.SimpleButton(); + this.BtnCancel = new DevExpress.XtraEditors.SimpleButton(); + this.BtnOk = new DevExpress.XtraEditors.SimpleButton(); + this.TeCurrentPW = new DevExpress.XtraEditors.TextEdit(); + this.TeNewPW = new DevExpress.XtraEditors.TextEdit(); + this.TeCornfirmPW = new DevExpress.XtraEditors.TextEdit(); + this.RbMaster = new System.Windows.Forms.RadioButton(); + this.RbEngineer = new System.Windows.Forms.RadioButton(); + this.RbTechnician = new System.Windows.Forms.RadioButton(); + this.Root = new DevExpress.XtraLayout.LayoutControlGroup(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.simpleLabelItem1 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.simpleLabelItem2 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + this.simpleLabelItem3 = new DevExpress.XtraLayout.SimpleLabelItem(); + this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.TeCurrentPW.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeNewPW.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeCornfirmPW.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.BtnResetPW); + this.layoutControl1.Controls.Add(this.BtnCancel); + this.layoutControl1.Controls.Add(this.BtnOk); + this.layoutControl1.Controls.Add(this.TeCurrentPW); + this.layoutControl1.Controls.Add(this.TeNewPW); + this.layoutControl1.Controls.Add(this.TeCornfirmPW); + this.layoutControl1.Controls.Add(this.RbMaster); + this.layoutControl1.Controls.Add(this.RbEngineer); + this.layoutControl1.Controls.Add(this.RbTechnician); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(804, 0, 650, 400); + this.layoutControl1.Root = this.Root; + this.layoutControl1.Size = new System.Drawing.Size(500, 265); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // BtnResetPW + // + this.BtnResetPW.Location = new System.Drawing.Point(412, 180); + this.BtnResetPW.Name = "BtnResetPW"; + this.BtnResetPW.Size = new System.Drawing.Size(85, 39); + this.BtnResetPW.StyleController = this.layoutControl1; + this.BtnResetPW.TabIndex = 15; + this.BtnResetPW.Text = "Reset"; + this.BtnResetPW.Click += new System.EventHandler(this.BtnResetPW_Click); + // + // BtnCancel + // + this.BtnCancel.Appearance.Font = new System.Drawing.Font("Tahoma", 10F); + this.BtnCancel.Appearance.Options.UseFont = true; + this.BtnCancel.Location = new System.Drawing.Point(252, 223); + this.BtnCancel.Name = "BtnCancel"; + this.BtnCancel.Size = new System.Drawing.Size(245, 39); + this.BtnCancel.StyleController = this.layoutControl1; + this.BtnCancel.TabIndex = 6; + this.BtnCancel.Text = "CANCEL"; + this.BtnCancel.Click += new System.EventHandler(this.BtnCancel_Click); + // + // BtnOk + // + this.BtnOk.Appearance.Font = new System.Drawing.Font("Tahoma", 10F); + this.BtnOk.Appearance.Options.UseFont = true; + this.BtnOk.Location = new System.Drawing.Point(3, 223); + this.BtnOk.Name = "BtnOk"; + this.BtnOk.Size = new System.Drawing.Size(245, 39); + this.BtnOk.StyleController = this.layoutControl1; + this.BtnOk.TabIndex = 5; + this.BtnOk.Text = "Apply"; + this.BtnOk.Click += new System.EventHandler(this.BtnOk_Click); + // + // TeCurrentPW + // + this.TeCurrentPW.Location = new System.Drawing.Point(133, 86); + this.TeCurrentPW.Name = "TeCurrentPW"; + this.TeCurrentPW.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 12F); + this.TeCurrentPW.Properties.Appearance.Options.UseFont = true; + this.TeCurrentPW.Properties.Appearance.Options.UseTextOptions = true; + this.TeCurrentPW.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.TeCurrentPW.Properties.PasswordChar = '*'; + this.TeCurrentPW.Size = new System.Drawing.Size(360, 26); + this.TeCurrentPW.StyleController = this.layoutControl1; + this.TeCurrentPW.TabIndex = 4; + // + // TeNewPW + // + this.TeNewPW.Location = new System.Drawing.Point(133, 116); + this.TeNewPW.Name = "TeNewPW"; + this.TeNewPW.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 12F); + this.TeNewPW.Properties.Appearance.Options.UseFont = true; + this.TeNewPW.Properties.Appearance.Options.UseTextOptions = true; + this.TeNewPW.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.TeNewPW.Properties.PasswordChar = '*'; + this.TeNewPW.Size = new System.Drawing.Size(360, 26); + this.TeNewPW.StyleController = this.layoutControl1; + this.TeNewPW.TabIndex = 4; + // + // TeCornfirmPW + // + this.TeCornfirmPW.Location = new System.Drawing.Point(133, 146); + this.TeCornfirmPW.Name = "TeCornfirmPW"; + this.TeCornfirmPW.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 12F); + this.TeCornfirmPW.Properties.Appearance.Options.UseFont = true; + this.TeCornfirmPW.Properties.Appearance.Options.UseTextOptions = true; + this.TeCornfirmPW.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.TeCornfirmPW.Properties.PasswordChar = '*'; + this.TeCornfirmPW.Size = new System.Drawing.Size(360, 26); + this.TeCornfirmPW.StyleController = this.layoutControl1; + this.TeCornfirmPW.TabIndex = 4; + // + // RbMaster + // + this.RbMaster.Location = new System.Drawing.Point(7, 28); + this.RbMaster.Name = "RbMaster"; + this.RbMaster.Size = new System.Drawing.Size(159, 25); + this.RbMaster.TabIndex = 8; + this.RbMaster.TabStop = true; + this.RbMaster.Text = "Master"; + this.RbMaster.UseVisualStyleBackColor = true; + // + // RbEngineer + // + this.RbEngineer.Location = new System.Drawing.Point(170, 28); + this.RbEngineer.Name = "RbEngineer"; + this.RbEngineer.Size = new System.Drawing.Size(159, 25); + this.RbEngineer.TabIndex = 9; + this.RbEngineer.TabStop = true; + this.RbEngineer.Text = "Engineer"; + this.RbEngineer.UseVisualStyleBackColor = true; + // + // RbTechnician + // + this.RbTechnician.Location = new System.Drawing.Point(333, 28); + this.RbTechnician.Name = "RbTechnician"; + this.RbTechnician.Size = new System.Drawing.Size(160, 25); + this.RbTechnician.TabIndex = 10; + this.RbTechnician.TabStop = true; + this.RbTechnician.Text = "Technician"; + this.RbTechnician.UseVisualStyleBackColor = true; + // + // Root + // + this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.Root.GroupBordersVisible = false; + this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.emptySpaceItem1, + this.layoutControlItem2, + this.layoutControlItem3, + this.layoutControlGroup2, + this.layoutControlGroup1, + this.layoutControlItem10}); + this.Root.Name = "Root"; + this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.Root.Size = new System.Drawing.Size(500, 265); + this.Root.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.Location = new System.Drawing.Point(0, 177); + this.emptySpaceItem1.MinSize = new System.Drawing.Size(104, 24); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(409, 43); + this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.BtnOk; + this.layoutControlItem2.Location = new System.Drawing.Point(0, 220); + this.layoutControlItem2.MinSize = new System.Drawing.Size(27, 26); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(249, 43); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.BtnCancel; + this.layoutControlItem3.Location = new System.Drawing.Point(249, 220); + this.layoutControlItem3.MinSize = new System.Drawing.Size(56, 26); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(249, 43); + this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextVisible = false; + // + // layoutControlGroup2 + // + this.layoutControlGroup2.CustomizationFormText = "Control Level"; + this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem6, + this.layoutControlItem7, + this.layoutControlItem8}); + this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup2.Name = "layoutControlGroup2"; + this.layoutControlGroup2.OptionsItemText.TextToControlDistance = 3; + this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup2.Size = new System.Drawing.Size(498, 58); + this.layoutControlGroup2.Text = "Control Level"; + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.RbMaster; + this.layoutControlItem6.ControlAlignment = System.Drawing.ContentAlignment.TopLeft; + this.layoutControlItem6.CustomizationFormText = "layoutControlItem2"; + this.layoutControlItem6.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem6.MaxSize = new System.Drawing.Size(0, 29); + this.layoutControlItem6.MinSize = new System.Drawing.Size(24, 29); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(163, 29); + this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem6.Text = "layoutControlItem2"; + this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem6.TextVisible = false; + // + // layoutControlItem7 + // + this.layoutControlItem7.Control = this.RbEngineer; + this.layoutControlItem7.ControlAlignment = System.Drawing.ContentAlignment.TopLeft; + this.layoutControlItem7.CustomizationFormText = "layoutControlItem1"; + this.layoutControlItem7.Location = new System.Drawing.Point(163, 0); + this.layoutControlItem7.MinSize = new System.Drawing.Size(24, 29); + this.layoutControlItem7.Name = "layoutControlItem7"; + this.layoutControlItem7.Size = new System.Drawing.Size(163, 29); + this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem7.Text = "layoutControlItem1"; + this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem7.TextVisible = false; + // + // layoutControlItem8 + // + this.layoutControlItem8.Control = this.RbTechnician; + this.layoutControlItem8.ControlAlignment = System.Drawing.ContentAlignment.TopLeft; + this.layoutControlItem8.CustomizationFormText = "layoutControlItem3"; + this.layoutControlItem8.Location = new System.Drawing.Point(326, 0); + this.layoutControlItem8.MinSize = new System.Drawing.Size(24, 29); + this.layoutControlItem8.Name = "layoutControlItem8"; + this.layoutControlItem8.Size = new System.Drawing.Size(164, 29); + this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem8.Text = "layoutControlItem3"; + this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem8.TextVisible = false; + // + // layoutControlGroup1 + // + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.simpleLabelItem1, + this.layoutControlItem1, + this.simpleLabelItem2, + this.layoutControlItem4, + this.simpleLabelItem3, + this.layoutControlItem5}); + this.layoutControlGroup1.Location = new System.Drawing.Point(0, 58); + this.layoutControlGroup1.Name = "layoutControlGroup1"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup1.Size = new System.Drawing.Size(498, 119); + this.layoutControlGroup1.Text = "Password"; + // + // simpleLabelItem1 + // + this.simpleLabelItem1.AllowHotTrack = false; + this.simpleLabelItem1.Location = new System.Drawing.Point(0, 0); + this.simpleLabelItem1.MaxSize = new System.Drawing.Size(0, 30); + this.simpleLabelItem1.MinSize = new System.Drawing.Size(126, 30); + this.simpleLabelItem1.Name = "simpleLabelItem1"; + this.simpleLabelItem1.Size = new System.Drawing.Size(126, 30); + this.simpleLabelItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem1.Text = " Current Password"; + this.simpleLabelItem1.TextSize = new System.Drawing.Size(104, 14); + // + // layoutControlItem1 + // + this.layoutControlItem1.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 12F); + this.layoutControlItem1.AppearanceItemCaption.Options.UseFont = true; + this.layoutControlItem1.Control = this.TeCurrentPW; + this.layoutControlItem1.Location = new System.Drawing.Point(126, 0); + this.layoutControlItem1.MinSize = new System.Drawing.Size(188, 30); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(364, 30); + this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem1.Text = "Password"; + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // simpleLabelItem2 + // + this.simpleLabelItem2.AllowHotTrack = false; + this.simpleLabelItem2.Location = new System.Drawing.Point(0, 30); + this.simpleLabelItem2.MaxSize = new System.Drawing.Size(0, 30); + this.simpleLabelItem2.MinSize = new System.Drawing.Size(126, 30); + this.simpleLabelItem2.Name = "simpleLabelItem2"; + this.simpleLabelItem2.Size = new System.Drawing.Size(126, 30); + this.simpleLabelItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem2.Text = " New Password"; + this.simpleLabelItem2.TextSize = new System.Drawing.Size(104, 14); + // + // layoutControlItem4 + // + this.layoutControlItem4.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 12F); + this.layoutControlItem4.AppearanceItemCaption.Options.UseFont = true; + this.layoutControlItem4.Control = this.TeNewPW; + this.layoutControlItem4.ControlAlignment = System.Drawing.ContentAlignment.TopLeft; + this.layoutControlItem4.CustomizationFormText = "Password"; + this.layoutControlItem4.Location = new System.Drawing.Point(126, 30); + this.layoutControlItem4.MinSize = new System.Drawing.Size(188, 30); + this.layoutControlItem4.Name = "layoutControlItem4"; + this.layoutControlItem4.Size = new System.Drawing.Size(364, 30); + this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem4.Text = "Password"; + this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem4.TextVisible = false; + // + // simpleLabelItem3 + // + this.simpleLabelItem3.AllowHotTrack = false; + this.simpleLabelItem3.Location = new System.Drawing.Point(0, 60); + this.simpleLabelItem3.MaxSize = new System.Drawing.Size(0, 30); + this.simpleLabelItem3.MinSize = new System.Drawing.Size(126, 30); + this.simpleLabelItem3.Name = "simpleLabelItem3"; + this.simpleLabelItem3.Size = new System.Drawing.Size(126, 30); + this.simpleLabelItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.simpleLabelItem3.Text = " Cornfirm Password"; + this.simpleLabelItem3.TextSize = new System.Drawing.Size(104, 14); + // + // layoutControlItem5 + // + this.layoutControlItem5.AppearanceItemCaption.Font = new System.Drawing.Font("Tahoma", 12F); + this.layoutControlItem5.AppearanceItemCaption.Options.UseFont = true; + this.layoutControlItem5.Control = this.TeCornfirmPW; + this.layoutControlItem5.ControlAlignment = System.Drawing.ContentAlignment.TopLeft; + this.layoutControlItem5.CustomizationFormText = "Password"; + this.layoutControlItem5.Location = new System.Drawing.Point(126, 60); + this.layoutControlItem5.MinSize = new System.Drawing.Size(188, 30); + this.layoutControlItem5.Name = "layoutControlItem5"; + this.layoutControlItem5.Size = new System.Drawing.Size(364, 30); + this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem5.Text = "Password"; + this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem5.TextVisible = false; + // + // layoutControlItem10 + // + this.layoutControlItem10.Control = this.BtnResetPW; + this.layoutControlItem10.Location = new System.Drawing.Point(409, 177); + this.layoutControlItem10.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem10.Name = "layoutControlItem10"; + this.layoutControlItem10.Size = new System.Drawing.Size(89, 43); + this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem10.TextVisible = false; + // + // FmxPasswordChange + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(500, 265); + this.Controls.Add(this.layoutControl1); + this.IconOptions.Image = global::LFP_Manager.Properties.Resources.AMO_LOGO1; + this.Name = "FmxPasswordChange"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Change Password"; + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FmxPassword_FormClosed); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.TeCurrentPW.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeNewPW.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.TeCornfirmPW.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.simpleLabelItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private DevExpress.XtraEditors.SimpleButton BtnOk; + private DevExpress.XtraEditors.TextEdit TeCurrentPW; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraEditors.SimpleButton BtnCancel; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraEditors.TextEdit TeNewPW; + private DevExpress.XtraEditors.TextEdit TeCornfirmPW; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem1; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem2; + private DevExpress.XtraLayout.SimpleLabelItem simpleLabelItem3; + private System.Windows.Forms.RadioButton RbMaster; + private System.Windows.Forms.RadioButton RbEngineer; + private System.Windows.Forms.RadioButton RbTechnician; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraEditors.SimpleButton BtnResetPW; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10; + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/FmxPasswordChange.cs b/LFP_Manager/Forms/FmxPasswordChange.cs new file mode 100644 index 0000000..4d29124 --- /dev/null +++ b/LFP_Manager/Forms/FmxPasswordChange.cs @@ -0,0 +1,149 @@ +using DevExpress.Pdf.Native; +using DevExpress.XtraEditors; +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using static DevExpress.XtraPrinting.Export.Pdf.PdfImageCache; + +namespace LFP_Manager.Forms +{ + public partial class FmxPasswordChange : DevExpress.XtraEditors.XtraForm + { + #region DELEGATE + public delegate void PasswordResut(int result); + #endregion + + #region VARIABLES + private CommConfig Config; + private int result = -1; + + public event PasswordResut OnResult = null; + + #endregion + + #region CONSTRUCTORS + public FmxPasswordChange(CommConfig aConfig) + { + InitializeComponent(); + + Config = aConfig; + } + #endregion + + #region FORM EVENT + private void FmxPassword_FormClosed(object sender, FormClosedEventArgs e) + { + OnResult?.Invoke(result); + } + #endregion + + #region BUTTON EVENT + private void BtnCancel_Click(object sender, EventArgs e) + { + Close(); + } + + private void BtnOk_Click(object sender, EventArgs e) + { + string sPW; + string currPW, newPW, cornfirmPW; + + currPW = TeCurrentPW.Text; + newPW = TeNewPW.Text; + cornfirmPW = TeCornfirmPW.Text; + + if (newPW.Length < 4) + { + MessageBox.Show("Too short new password (Min. Length 4)", "Result", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + if (RbMaster.Checked) + { + sPW = Config.MasterPw; + } + else if (RbEngineer.Checked) + { + sPW = Config.EngineerPw; + } + else if (RbTechnician.Checked) + { + sPW = Config.TechnicianPw; + } + else + { + sPW = ""; + } + + if (sPW != currPW) + { + MessageBox.Show("The current password is incorrect.", "Result", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + if (newPW != cornfirmPW) + { + MessageBox.Show("The new password and its confirmation do not match.", "Result", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + if (currPW == newPW) + { + MessageBox.Show("Your new password cannot be the same as your current password.", "Result", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + if (RbMaster.Checked) + { + Config.MasterPw = newPW; + } + else if (RbEngineer.Checked) + { + Config.EngineerPw = newPW; + } + else if (RbTechnician.Checked) + { + Config.TechnicianPw = newPW; + } + else + { + return; + } + csIniControlFunction.IniSave(Application.ExecutablePath, Config); + + MessageBox.Show("Password changed successfully.", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + + private void BtnResetPW_Click(object sender, EventArgs e) + { + foreach (Form frm in Application.OpenForms) + { + if (frm.Name == "FmxPassword") + { + frm.Activate(); + return; + } + } + FmxPassword PasswordForm = new FmxPassword(Config); + if (PasswordForm.ShowDialog() == DialogResult.OK) + { + Config.MasterPw = "8003"; + Config.EngineerPw = "7003"; + Config.TechnicianPw = "6003"; + csIniControlFunction.IniSave(Application.ExecutablePath, Config); + + MessageBox.Show("Password reset successful.", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + + } + } + #endregion + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/FmxPasswordChange.resx b/LFP_Manager/Forms/FmxPasswordChange.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/LFP_Manager/Forms/FmxPasswordChange.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LFP_Manager/Forms/fmCalibration.Designer.cs b/LFP_Manager/Forms/fmCalibration.Designer.cs new file mode 100644 index 0000000..5c8ea48 --- /dev/null +++ b/LFP_Manager/Forms/fmCalibration.Designer.cs @@ -0,0 +1,152 @@ +namespace LFP_Manager.Forms +{ + partial class fmxCalibration + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxCalibration)); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.ucCalibration1 = new LFP_Manager.Controls.ucCalibration(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.btnClose = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.tmrDisplay = new System.Windows.Forms.Timer(this.components); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.btnClose); + this.layoutControl1.Controls.Add(this.ucCalibration1); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(668, 306, 250, 350); + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(612, 485); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem1, + this.layoutControlItem2}); + this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup1.Name = "layoutControlGroup1"; + this.layoutControlGroup1.Size = new System.Drawing.Size(612, 485); + this.layoutControlGroup1.Text = "layoutControlGroup1"; + this.layoutControlGroup1.TextVisible = false; + // + // ucCalibration1 + // + this.ucCalibration1.Location = new System.Drawing.Point(12, 12); + this.ucCalibration1.Name = "ucCalibration1"; + this.ucCalibration1.Size = new System.Drawing.Size(588, 423); + this.ucCalibration1.TabIndex = 4; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.ucCalibration1; + this.layoutControlItem1.CustomizationFormText = "layoutControlItem1"; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.MinSize = new System.Drawing.Size(104, 24); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(592, 427); + this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem1.Text = "layoutControlItem1"; + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextToControlDistance = 0; + this.layoutControlItem1.TextVisible = false; + // + // btnClose + // + this.btnClose.Location = new System.Drawing.Point(12, 439); + this.btnClose.Name = "btnClose"; + this.btnClose.Size = new System.Drawing.Size(588, 34); + this.btnClose.StyleController = this.layoutControl1; + this.btnClose.TabIndex = 5; + this.btnClose.Text = "Close"; + this.btnClose.Click += new System.EventHandler(this.btnClose_Click); + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.btnClose; + this.layoutControlItem2.CustomizationFormText = "layoutControlItem2"; + this.layoutControlItem2.Location = new System.Drawing.Point(0, 427); + this.layoutControlItem2.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(592, 38); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.Text = "layoutControlItem2"; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextToControlDistance = 0; + this.layoutControlItem2.TextVisible = false; + // + // tmrDisplay + // + this.tmrDisplay.Interval = 500; + this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick); + // + // fmxCalibration + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(612, 485); + this.Controls.Add(this.layoutControl1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "fmxCalibration"; + this.Text = "Calibration"; + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraEditors.SimpleButton btnClose; + private Controls.ucCalibration ucCalibration1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private System.Windows.Forms.Timer tmrDisplay; + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmCalibration.cs b/LFP_Manager/Forms/fmCalibration.cs new file mode 100644 index 0000000..a829f6e --- /dev/null +++ b/LFP_Manager/Forms/fmCalibration.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Linq; +using System.Windows.Forms; +using DevExpress.XtraEditors; + +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Controls; + +namespace LFP_Manager.Forms +{ + public delegate void CalibUpdateEvent(object sendor); + public delegate void CalibCmdEvent(int sId, int mode, int flag, DeviceParamData aParam, DeviceCalibration aCalib); + + public partial class fmxCalibration : DevExpress.XtraEditors.XtraForm + { + #region VARIABLES + + int SystemId = 0; + DeviceParamData Param; + DeviceCalibration Calib; + + public event CalibUpdateEvent OnUpdate = null; + public event CalibCmdEvent OnCommand = null; + + #endregion + + #region CONSTRUCTORS + + public fmxCalibration() + { + InitializeComponent(); + } + + public fmxCalibration(int sId, DeviceCalibration aCalib) + { + InitializeComponent(); + + SystemId = sId; + Calib = aCalib; + + tmrDisplay.Enabled = true; + } + + #endregion + + private void btnClose_Click(object sender, EventArgs e) + { + Close(); + } + + #region TIMER EVENT + + private void tmrDisplay_Tick(object sender, EventArgs e) + { + if (OnUpdate != null) + { + OnUpdate(this); + } + } + + #endregion + + #region PUBLIC FUCTIONS + + public void UpdateData(DeviceParamData aParam, DeviceCalibration aCalib) + { + Param = aParam; + Calib = aCalib; + } + + #endregion + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmCalibration.resx b/LFP_Manager/Forms/fmCalibration.resx new file mode 100644 index 0000000..53cd17e --- /dev/null +++ b/LFP_Manager/Forms/fmCalibration.resx @@ -0,0 +1,4574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA + GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/ + ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7///////////////////// + ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff///////// + ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+ + /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7///// + ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc + x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7///////////////////////////// + ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt + e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP + SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7///////// + ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z + WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS + Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8 + +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+ + /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+ + /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO + SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz + 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o + 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9 + /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE + oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG + PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7///// + ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH + PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t + 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/ + ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/ + ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7///////////////////////////// + ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+ + /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ + TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7///////////////// + ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ + TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+ + /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7///// + ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP + SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7///////////////////////////////////////// + ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/ + ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/ + ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7///////////////////////////// + ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/ + ///+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////+/v7////////+/v3////////////////////////+/v3////////+/v7///////////////// + ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7///////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + /////////v7+/v7///////////////////////////////////////////////////////////////// + ///////////////////////////+/v7////////+/v7///////////////////////////////////// + ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7///////////////////// + ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7 + +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9 + /Pz+/v7///////////////////////////////////////////////////////////////////////// + ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM + RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7///////////////////////////////////// + ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL + QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+ + /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP + SgCOSQCPTAKFOwDVvaT////9/Pv+/v7///////////////////////////////////////////////// + ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8 + +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7///////// + /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO + SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF + OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+ + ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/ + //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7///////////////////////// + ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/ + mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79 + /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN + RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ + TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7///// + ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7///// + ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+ + /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ + TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP + SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH + PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/ + ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5 + 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+ + /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ + QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE + oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/ + ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7///////////////////////// + ///////////////////////////////////////////////////////+/v7+//////////////////// + ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+ + /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9 + /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP + SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL + RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7///////////////////////////////// + ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/ + ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7///////// + ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP + SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI + PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/ + ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x + glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7///////////////////////////// + ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM + RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+ + /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/ + ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP + SgCOSgGLRQGTURDz7ef+/v39/f3+/v7///////////////////////////////////////////////// + ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+ + /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7///////////// + ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN + RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9 + /fz9/f3+/v7+/v7///////////////////////////////////////////////////////////////// + ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO + SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7///////////////////////////////////////// + ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO + SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7///// + //////////////////////////////////////////////////////////////////////////////// + ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS + UA/y6+X+/v39/fz+/v7+/v7///////////////////////////////////////////////////////// + ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP + SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7///////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+ + /v7///////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO + SQCOSQGJQQDi0cD////9/Pv+/v7///////////////////////////////////////////////////// + ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J + QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39 + /fz+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz + hFazhFayhFazhVete1TWvqb////9/fz+/v7///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7///////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+ + /f3+/f3///////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v7+//////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////v7+ + /f39//////////////////////////////////////////////////////////////////////////// + ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39 + /fz8/v79/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA + nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1//// + x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV + i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC + jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC + hz8Ap3I//fz7/fz8/v79/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7 + /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8 + +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p + /v39/f38/v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+ + ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb + 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//7+/f39 + /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7//// + 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+ + /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA + j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB + j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB + i0UAlVYZ8+3m/f79/f38/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+//////////////// + /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39 + /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+ + sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+ + /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+//////// + /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+ + /f39/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO + /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39 + 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39 + /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+//////////////////////////// + /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+//// + /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A + kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + jkoCikIC4tHA/////Pv7/v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC + hz4A1r6m/////Pz7/v7+/v7+/////v7+//////////////////////////////////////////////// + /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+ + /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+//////////////////// + /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM + /////Pv6/v7+/v7+/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA + j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+//////////////////////////////////////// + /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+ + /v7+/v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+ + /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7 + /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq//// + /Pv6/v7+/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A + j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA + kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA + j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6 + /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+//////// + /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+ + /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA + xaJ//////Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU + /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA + j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+//////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+//////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+//////////// + 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+ + /////v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39 + /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/ + /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6 + ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+ + /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC + kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB + kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39//// + /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA + hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA + iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A + j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU + z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+//////// + /v7+/////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7//v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn + +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3 + +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8 + /fz8/v7+/////v7+/////v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v///v7+/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT + z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7 + ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A + hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A + fS0AtIdb/f38/Pz8///+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D + kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL + jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+//////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA + jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3 + iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA + jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA + jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK + 6t7S/v7+/fz8/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+//////////////////////// + /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs//// + /Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7 + /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38 + /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fz8 + /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+//////////////////////////////////// + /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+ + /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA + jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A + pnA8/Pv6/fz7/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq + iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+ + /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+//////////// + /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+ + //7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A + 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES + jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+//////////////// + /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6 + /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7 + /v79/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v39 + /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8 + +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+ + /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ + hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ + 8+3m/f39/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+ + /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA + jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA + u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA + j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA + jkkCikQE49PC/v7//fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8 + /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+ + /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7//// + t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA + jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU + hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD + /////fz8//7//v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA + oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC + hj0Az7SX/////fz7//7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//7+ + /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH + jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA + jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT//// + /Pz8/v7//v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA + t4tf/////fz7/v7+/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs + mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6 + /v7+/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v7+ + /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx + +/n3/fz8/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+ + rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA + jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW + k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV + kU8TmVoj8ejg/v39/fz7/v7//f39/v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off + 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v////7+/v7+/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v39/v7+ + ///+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v////// + /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v79/////////v7+/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v79/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////9/Lt9/Pu + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2svnmMrzrGR/////fz7//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ + /v39/fz8/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h + /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0//// + 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC + j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + jUgBlFIO7uTa/////f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB + jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7 + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+ + /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38//////////////////// + /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z + iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+ + sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG//// + /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + hz4Ar35J/v39/fz8/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+//////// + /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38//////////////////////////////// + /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+//////////////////////////////////////////// + /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA + /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW + k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+ + /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+//////////////////// + /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iEAA176j/////fz7//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39//////////////////////////////////////////// + ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38 + /fz8/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEA1buf/////fz8/v7+/v7+//////////////////////////////////////////////////////// + /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+ + /////////////////////////////////////////////////////////////////////////////v7+ + /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+//////////// + /////////////////////////////////////////////////////////////////////fz7////yKaB + hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v///f38////sH9K + hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+//////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oBi0QAnmIj9vHs/v39/v39//////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA + nWAf9vHs/v7+/v79//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo//// + /fz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v///f38//// + 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8//////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/v79+/n3omor + ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm + +PTw/v39/f39//////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sBjEUAmVwb9e/p/v7+/f38//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A + vpVq/////fz7/v/+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8AyKaB/////fz7/v///v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39 + //7///////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC + jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsCiD8Auo9h/////fz8/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE + iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB + 4tC+/////f38/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjUcBk1EN7+Xb/////f39/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj + n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f38////u5Jlhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkBjUgE4M66/////fz7/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR + 7+bd/v7+/f39//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv + +/n4/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0 + rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6 + ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC + hz4AtolZ/////fz8/v3+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA + j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + j0sBikIApGww+vj1/v39/f39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ + j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M + /////Pz7/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkCjkkG4c+7/////fz7/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+///+/v39 + /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d//// + /fz7/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/f38/f38 + 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A + jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sBiD8AyKiE/////fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oBiUEApW4z+vj1/v39/v39//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ + /v7+/f38/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4 + 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD + 49PB/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/Pz7//// + 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6//// + /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A + j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC + iUEAqHQ7+/j2/fz8/v39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jUgBkk8K7ODV/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL//// + /f38/v7+///+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6//////// + ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A + ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38 + /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBiUEA1Lqd/////fv6//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38 + sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+//////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////v7+/v39 + /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq + 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38 + /v39/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjUgBkU4J6NrM/////fz8//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA + jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEArnxG/v7+/f38/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO + 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i//// + /Pz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA + hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39//////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr + vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g + 4M24/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY + llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+//////////////////////////// + /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsCiUEArXpD/v7//f39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB + ikMA1bqf/////fz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39 + /f38/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39 + /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/////////v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI + iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8//// + /fz8//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA + mVsZ8+zl/v38/fz8//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7 + /v7+//7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz7/v7+ + 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf + 9vHs/v79/fz8//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z + iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAi0YAl1gT8+3l/v7+/f39//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA + upFj/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC + hz4AwZty/////fz8/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////f39 + /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC + jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ + hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsChz4At4ta/////fz8/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjUgCkEwL6dzO/////fz7//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD + 38y3/////fz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v/+/f39/v79 + +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////fz8 + /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A + kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK + 5tbG/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBjUcB4M25/////f38/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos + +PTw/fz8/f39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA + kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB + iUAAq3dA/Pr4/fz7/f39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v///fz7 + ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA + j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0oBikMAomgq+vf0/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////Pz7////4M24 + i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiUEA0rea/////fz7/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7 + /v38/v39/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////f38/v79 + +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/f38 + ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + kEwChz4AxaJ8/////fz7/v7+//////////////////////////////////////////////////////// + ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA + 07mb/////Pz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU + /v7+/Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+//// + //////////////////////////////////////////////////////////////////////////////7/ + /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7///////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+//////////////////////////// + /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jEQAm10b9O/p/v7+/f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+//////////////////////////////////////// + /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7 + /v7//v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jUgAklAK6dzO/////f38/v////////////////////////////////////////////////////////// + /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6 + /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng + lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+ + /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiD8Au5Jl/////fz8/v7+//7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+//////////////////// + /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj + /v39/fz8/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+//////////////////////////// + /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8 + ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb//// + /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A + upFj/////fz8/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+ + /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7//////////////////////// + /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf + llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA + kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkBjUcA49LA/////f38/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79 + /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3 + qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8////0baX + iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD + /////fz8/v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA + nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA + qHI4/Pv5/v39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+ + iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + kEsChz8Az7KS/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7 + /v39/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v39 + /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////fz8////59jIj0oD + jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ + /////fz8//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB + llYW7+Xb/v7+/f38/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0wChz8AuIxc/v7+/fz7/v39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+ + /v39/v////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fv6 + ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAjkkBjEYA4M24/////fz8/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa + /////f38//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v39/fz7 + 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB + jUcE3sq2/////Pz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oBikMAomgq+fXy/v39/f39//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/fz7//// + 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq + +vf1/f38/f39//7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39 + tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS + yqqM38u2/////v79/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/v79//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v79/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxAntiTheft.Designer.cs b/LFP_Manager/Forms/fmxAntiTheft.Designer.cs new file mode 100644 index 0000000..c7f2cd4 --- /dev/null +++ b/LFP_Manager/Forms/fmxAntiTheft.Designer.cs @@ -0,0 +1,161 @@ +namespace LFP_Manager.Forms +{ + partial class fmxAntiTheft + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxAntiTheft)); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.btnClose = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.tmrDisplay = new System.Windows.Forms.Timer(this.components); + this.AntiTheftCmd = new LFP_Manager.Controls.UcAntiTheftControl(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.AntiTheftCmd); + this.layoutControl1.Controls.Add(this.btnClose); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1265, 291, 250, 350); + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(858, 226); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // btnClose + // + this.btnClose.Location = new System.Drawing.Point(612, 200); + this.btnClose.Name = "btnClose"; + this.btnClose.Size = new System.Drawing.Size(242, 22); + this.btnClose.StyleController = this.layoutControl1; + this.btnClose.TabIndex = 5; + this.btnClose.Text = "Close"; + this.btnClose.Click += new System.EventHandler(this.btnClose_Click); + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem2, + this.emptySpaceItem1, + this.layoutControlItem1}); + this.layoutControlGroup1.Name = "Root"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2); + this.layoutControlGroup1.Size = new System.Drawing.Size(858, 226); + this.layoutControlGroup1.TextVisible = false; + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.btnClose; + this.layoutControlItem2.CustomizationFormText = "layoutControlItem2"; + this.layoutControlItem2.Location = new System.Drawing.Point(608, 196); + this.layoutControlItem2.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(246, 26); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1"; + this.emptySpaceItem1.Location = new System.Drawing.Point(0, 196); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(608, 26); + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // tmrDisplay + // + this.tmrDisplay.Interval = 500; + this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick); + // + // AntiTheftCmd + // + this.AntiTheftCmd.Location = new System.Drawing.Point(4, 4); + this.AntiTheftCmd.Name = "AntiTheftCmd"; + this.AntiTheftCmd.Size = new System.Drawing.Size(850, 192); + this.AntiTheftCmd.TabIndex = 6; + this.AntiTheftCmd.Load += new System.EventHandler(this.AntiTheftCmd_Load); + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.AntiTheftCmd; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(854, 196); + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // fmxAntiTheft + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(858, 226); + this.Controls.Add(this.layoutControl1); + this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxAntiTheft.IconOptions.Icon"))); + this.Name = "fmxAntiTheft"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Anti-Theft"; + this.TopMost = true; + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraEditors.SimpleButton btnClose; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private System.Windows.Forms.Timer tmrDisplay; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private Controls.UcAntiTheftControl AntiTheftCmd; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxAntiTheft.cs b/LFP_Manager/Forms/fmxAntiTheft.cs new file mode 100644 index 0000000..d1f6619 --- /dev/null +++ b/LFP_Manager/Forms/fmxAntiTheft.cs @@ -0,0 +1,126 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Linq; +using System.Windows.Forms; +using DevExpress.XtraEditors; + +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Controls; +using LFP_Manager.Threads; + +namespace LFP_Manager.Forms +{ + public delegate void AntiTheftUpdateEvent(object sendor); + public delegate void AntiTheftCmdEvent(int sId, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib); + + public partial class fmxAntiTheft : DevExpress.XtraEditors.XtraForm + { + #region VARIABLES + + int SystemId = 0; + DeviceSystemData SystemData; + DeviceParamData Param; + DeviceCalibration Calib; + + public event AntiTheftUpdateEvent OnUpdate = null; + public event AntiTheftCmdEvent OnCommand = null; + public event SendDataUartEvent OnSendUartData = null; + + #endregion + + #region CONSTRUCTORS + + public fmxAntiTheft() + { + InitializeComponent(); + } + + public fmxAntiTheft(int sId, DeviceCalibration aCalib) + { + InitializeComponent(); + + InitComponent(); + + SystemId = sId; + Calib = aCalib; + + AntiTheftCmd.UpdateData(SystemId, Calib); + AntiTheftCmd.OnSendUartData += SetWriteData; + + tmrDisplay.Enabled = true; + } + + public void InitComponent() + { + // Cell Voltage Calibration + AntiTheftCmd.OnCommand += OnCmdEvent; + } + + #endregion + + #region COMMAND EVENT + private void SetWriteData(ushort WriteAddr, byte[] WriteData, bool RelyFlag, int type) + { + OnSendUartData?.Invoke(WriteAddr, WriteData, RelyFlag, type); + } + + private void OnCmdEvent(int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib) + { + OnCommand?.Invoke(SystemId, mode, index, flag, ref aParam, ref aCalib); + } + + #endregion + + #region BUTTON EVENT + private void btnClose_Click(object sender, EventArgs e) + { + Close(); + } + #endregion + + #region TIMER EVENT + + private void tmrDisplay_Tick(object sender, EventArgs e) + { + + DisplayValue(); + if (OnUpdate != null) + { + OnUpdate(this); + } + } + + #endregion + + #region DISPLAY DATA + + private void DisplayValue() + { + // Cell Voltage Parameter + AntiTheftCmd.UpdateData(SystemId, Calib); + } + + #endregion + + #region PUBLIC FUCTIONS + + public void UpdateData(DeviceParamData aParam, DeviceCalibration aCalib, DeviceSystemData aSystemData) + { + SystemData = aSystemData; + Param = aParam; + Calib = aCalib; + } + + #endregion + + private void AntiTheftCmd_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxAntiTheft.resx b/LFP_Manager/Forms/fmxAntiTheft.resx new file mode 100644 index 0000000..3e6bd1e --- /dev/null +++ b/LFP_Manager/Forms/fmxAntiTheft.resx @@ -0,0 +1,4574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA + GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/ + ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7///////////////////// + ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff///////// + ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+ + /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7///// + ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc + x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7///////////////////////////// + ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt + e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP + SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7///////// + ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z + WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS + Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8 + +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+ + /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+ + /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO + SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz + 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o + 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9 + /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE + oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG + PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7///// + ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH + PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t + 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/ + ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/ + ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7///////////////////////////// + ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+ + /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ + TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7///////////////// + ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ + TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+ + /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7///// + ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP + SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7///////////////////////////////////////// + ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/ + ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/ + ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7///////////////////////////// + ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/ + ///+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////+/v7////////+/v3////////////////////////+/v3////////+/v7///////////////// + ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7///////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + /////////v7+/v7///////////////////////////////////////////////////////////////// + ///////////////////////////+/v7////////+/v7///////////////////////////////////// + ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7///////////////////// + ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7 + +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9 + /Pz+/v7///////////////////////////////////////////////////////////////////////// + ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM + RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7///////////////////////////////////// + ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL + QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+ + /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP + SgCOSQCPTAKFOwDVvaT////9/Pv+/v7///////////////////////////////////////////////// + ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8 + +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7///////// + /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO + SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF + OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+ + ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/ + //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7///////////////////////// + ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/ + mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79 + /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN + RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ + TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7///// + ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7///// + ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+ + /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ + TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP + SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH + PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/ + ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5 + 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+ + /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ + QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE + oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/ + ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7///////////////////////// + ///////////////////////////////////////////////////////+/v7+//////////////////// + ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+ + /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9 + /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP + SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL + RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7///////////////////////////////// + ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/ + ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7///////// + ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP + SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI + PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/ + ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x + glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7///////////////////////////// + ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM + RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+ + /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/ + ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP + SgCOSgGLRQGTURDz7ef+/v39/f3+/v7///////////////////////////////////////////////// + ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+ + /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7///////////// + ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN + RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9 + /fz9/f3+/v7+/v7///////////////////////////////////////////////////////////////// + ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO + SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7///////////////////////////////////////// + ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO + SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7///// + //////////////////////////////////////////////////////////////////////////////// + ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS + UA/y6+X+/v39/fz+/v7+/v7///////////////////////////////////////////////////////// + ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP + SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7///////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+ + /v7///////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO + SQCOSQGJQQDi0cD////9/Pv+/v7///////////////////////////////////////////////////// + ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J + QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39 + /fz+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz + hFazhFayhFazhVete1TWvqb////9/fz+/v7///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7///////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+ + /f3+/f3///////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v7+//////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////v7+ + /f39//////////////////////////////////////////////////////////////////////////// + ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39 + /fz8/v79/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA + nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1//// + x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV + i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC + jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC + hz8Ap3I//fz7/fz8/v79/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7 + /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8 + +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p + /v39/f38/v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+ + ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb + 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//7+/f39 + /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7//// + 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+ + /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA + j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB + j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB + i0UAlVYZ8+3m/f79/f38/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+//////////////// + /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39 + /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+ + sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+ + /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+//////// + /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+ + /f39/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO + /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39 + 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39 + /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+//////////////////////////// + /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+//// + /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A + kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + jkoCikIC4tHA/////Pv7/v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC + hz4A1r6m/////Pz7/v7+/v7+/////v7+//////////////////////////////////////////////// + /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+ + /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+//////////////////// + /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM + /////Pv6/v7+/v7+/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA + j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+//////////////////////////////////////// + /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+ + /v7+/v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+ + /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7 + /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq//// + /Pv6/v7+/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A + j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA + kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA + j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6 + /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+//////// + /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+ + /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA + xaJ//////Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU + /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA + j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+//////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+//////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+//////////// + 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+ + /////v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39 + /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/ + /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6 + ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+ + /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC + kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB + kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39//// + /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA + hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA + iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A + j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU + z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+//////// + /v7+/////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7//v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn + +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3 + +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8 + /fz8/v7+/////v7+/////v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v///v7+/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT + z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7 + ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A + hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A + fS0AtIdb/f38/Pz8///+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D + kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL + jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+//////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA + jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3 + iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA + jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA + jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK + 6t7S/v7+/fz8/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+//////////////////////// + /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs//// + /Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7 + /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38 + /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fz8 + /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+//////////////////////////////////// + /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+ + /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA + jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A + pnA8/Pv6/fz7/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq + iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+ + /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+//////////// + /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+ + //7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A + 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES + jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+//////////////// + /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6 + /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7 + /v79/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v39 + /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8 + +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+ + /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ + hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ + 8+3m/f39/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+ + /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA + jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA + u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA + j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA + jkkCikQE49PC/v7//fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8 + /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+ + /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7//// + t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA + jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU + hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD + /////fz8//7//v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA + oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC + hj0Az7SX/////fz7//7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//7+ + /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH + jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA + jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT//// + /Pz8/v7//v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA + t4tf/////fz7/v7+/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs + mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6 + /v7+/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v7+ + /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx + +/n3/fz8/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+ + rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA + jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW + k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV + kU8TmVoj8ejg/v39/fz7/v7//f39/v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off + 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v////7+/v7+/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v39/v7+ + ///+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v////// + /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v79/////////v7+/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v79/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////9/Lt9/Pu + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2svnmMrzrGR/////fz7//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ + /v39/fz8/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h + /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0//// + 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC + j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + jUgBlFIO7uTa/////f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB + jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7 + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+ + /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38//////////////////// + /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z + iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+ + sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG//// + /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + hz4Ar35J/v39/fz8/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+//////// + /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38//////////////////////////////// + /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+//////////////////////////////////////////// + /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA + /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW + k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+ + /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+//////////////////// + /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iEAA176j/////fz7//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39//////////////////////////////////////////// + ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38 + /fz8/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEA1buf/////fz8/v7+/v7+//////////////////////////////////////////////////////// + /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+ + /////////////////////////////////////////////////////////////////////////////v7+ + /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+//////////// + /////////////////////////////////////////////////////////////////////fz7////yKaB + hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v///f38////sH9K + hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+//////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oBi0QAnmIj9vHs/v39/v39//////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA + nWAf9vHs/v7+/v79//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo//// + /fz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v///f38//// + 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8//////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/v79+/n3omor + ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm + +PTw/v39/f39//////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sBjEUAmVwb9e/p/v7+/f38//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A + vpVq/////fz7/v/+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8AyKaB/////fz7/v///v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39 + //7///////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC + jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsCiD8Auo9h/////fz8/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE + iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB + 4tC+/////f38/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjUcBk1EN7+Xb/////f39/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj + n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f38////u5Jlhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkBjUgE4M66/////fz7/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR + 7+bd/v7+/f39//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv + +/n4/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0 + rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6 + ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC + hz4AtolZ/////fz8/v3+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA + j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + j0sBikIApGww+vj1/v39/f39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ + j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M + /////Pz7/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkCjkkG4c+7/////fz7/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+///+/v39 + /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d//// + /fz7/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/f38/f38 + 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A + jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sBiD8AyKiE/////fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oBiUEApW4z+vj1/v39/v39//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ + /v7+/f38/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4 + 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD + 49PB/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/Pz7//// + 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6//// + /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A + j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC + iUEAqHQ7+/j2/fz8/v39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jUgBkk8K7ODV/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL//// + /f38/v7+///+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6//////// + ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A + ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38 + /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBiUEA1Lqd/////fv6//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38 + sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+//////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////v7+/v39 + /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq + 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38 + /v39/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjUgBkU4J6NrM/////fz8//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA + jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEArnxG/v7+/f38/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO + 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i//// + /Pz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA + hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39//////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr + vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g + 4M24/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY + llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+//////////////////////////// + /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsCiUEArXpD/v7//f39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB + ikMA1bqf/////fz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39 + /f38/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39 + /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/////////v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI + iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8//// + /fz8//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA + mVsZ8+zl/v38/fz8//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7 + /v7+//7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz7/v7+ + 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf + 9vHs/v79/fz8//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z + iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAi0YAl1gT8+3l/v7+/f39//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA + upFj/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC + hz4AwZty/////fz8/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////f39 + /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC + jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ + hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsChz4At4ta/////fz8/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjUgCkEwL6dzO/////fz7//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD + 38y3/////fz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v/+/f39/v79 + +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////fz8 + /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A + kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK + 5tbG/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBjUcB4M25/////f38/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos + +PTw/fz8/f39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA + kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB + iUAAq3dA/Pr4/fz7/f39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v///fz7 + ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA + j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0oBikMAomgq+vf0/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////Pz7////4M24 + i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiUEA0rea/////fz7/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7 + /v38/v39/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////f38/v79 + +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/f38 + ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + kEwChz4AxaJ8/////fz7/v7+//////////////////////////////////////////////////////// + ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA + 07mb/////Pz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU + /v7+/Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+//// + //////////////////////////////////////////////////////////////////////////////7/ + /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7///////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+//////////////////////////// + /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jEQAm10b9O/p/v7+/f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+//////////////////////////////////////// + /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7 + /v7//v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jUgAklAK6dzO/////f38/v////////////////////////////////////////////////////////// + /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6 + /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng + lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+ + /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiD8Au5Jl/////fz8/v7+//7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+//////////////////// + /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj + /v39/fz8/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+//////////////////////////// + /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8 + ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb//// + /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A + upFj/////fz8/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+ + /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7//////////////////////// + /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf + llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA + kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkBjUcA49LA/////f38/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79 + /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3 + qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8////0baX + iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD + /////fz8/v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA + nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA + qHI4/Pv5/v39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+ + iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + kEsChz8Az7KS/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7 + /v39/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v39 + /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////fz8////59jIj0oD + jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ + /////fz8//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB + llYW7+Xb/v7+/f38/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0wChz8AuIxc/v7+/fz7/v39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+ + /v39/v////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fv6 + ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAjkkBjEYA4M24/////fz8/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa + /////f38//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v39/fz7 + 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB + jUcE3sq2/////Pz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oBikMAomgq+fXy/v39/f39//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/fz7//// + 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq + +vf1/f38/f39//7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39 + tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS + yqqM38u2/////v79/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/v79//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v79/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxCalibration.Designer.cs b/LFP_Manager/Forms/fmxCalibration.Designer.cs new file mode 100644 index 0000000..b9945c1 --- /dev/null +++ b/LFP_Manager/Forms/fmxCalibration.Designer.cs @@ -0,0 +1,162 @@ +namespace LFP_Manager.Forms +{ + partial class fmxCalibration + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxCalibration)); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.btnClose = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.tmrDisplay = new System.Windows.Forms.Timer(this.components); + this.ucCalibrationConfig = new LFP_Manager.Controls.ucCalibration(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.btnClose); + this.layoutControl1.Controls.Add(this.ucCalibrationConfig); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1265, 291, 250, 350); + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(814, 444); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // btnClose + // + this.btnClose.Location = new System.Drawing.Point(714, 403); + this.btnClose.Name = "btnClose"; + this.btnClose.Size = new System.Drawing.Size(96, 37); + this.btnClose.StyleController = this.layoutControl1; + this.btnClose.TabIndex = 5; + this.btnClose.Text = "Close"; + this.btnClose.Click += new System.EventHandler(this.btnClose_Click); + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem1, + this.layoutControlItem2, + this.emptySpaceItem1}); + this.layoutControlGroup1.Name = "Root"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2); + this.layoutControlGroup1.Size = new System.Drawing.Size(814, 444); + this.layoutControlGroup1.TextVisible = false; + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.btnClose; + this.layoutControlItem2.CustomizationFormText = "layoutControlItem2"; + this.layoutControlItem2.Location = new System.Drawing.Point(710, 399); + this.layoutControlItem2.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(100, 41); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1"; + this.emptySpaceItem1.Location = new System.Drawing.Point(0, 399); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(710, 41); + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // tmrDisplay + // + this.tmrDisplay.Interval = 500; + this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick); + // + // ucCalibrationConfig + // + this.ucCalibrationConfig.Location = new System.Drawing.Point(4, 4); + this.ucCalibrationConfig.Name = "ucCalibrationConfig"; + this.ucCalibrationConfig.Size = new System.Drawing.Size(806, 395); + this.ucCalibrationConfig.TabIndex = 4; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.ucCalibrationConfig; + this.layoutControlItem1.CustomizationFormText = "layoutControlItem1"; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.MinSize = new System.Drawing.Size(104, 24); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(810, 399); + this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // fmxCalibration + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(814, 444); + this.Controls.Add(this.layoutControl1); + this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxCalibration.IconOptions.Icon"))); + this.Name = "fmxCalibration"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Calibration"; + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraEditors.SimpleButton btnClose; + private Controls.ucCalibration ucCalibrationConfig; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private System.Windows.Forms.Timer tmrDisplay; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxCalibration.cs b/LFP_Manager/Forms/fmxCalibration.cs new file mode 100644 index 0000000..21457e9 --- /dev/null +++ b/LFP_Manager/Forms/fmxCalibration.cs @@ -0,0 +1,116 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Linq; +using System.Windows.Forms; +using DevExpress.XtraEditors; + +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Controls; +using static DevExpress.XtraPrinting.Export.Pdf.PdfImageCache; + +namespace LFP_Manager.Forms +{ + public delegate void CalibUpdateEvent(object sendor); + public delegate void CalibCmdEvent(int sId, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib); + + public partial class fmxCalibration : DevExpress.XtraEditors.XtraForm + { + #region VARIABLES + + int SystemId = 0; + DeviceSystemData SystemData; + DeviceParamData Param; + DeviceCalibration Calib; + + public event CalibUpdateEvent OnUpdate = null; + public event CalibCmdEvent OnCommand = null; + + #endregion + + #region CONSTRUCTORS + + public fmxCalibration() + { + InitializeComponent(); + } + + public fmxCalibration(int sId, CommConfig aConfig, DeviceParamData aParam, DeviceCalibration aCalib) + { + InitializeComponent(); + + InitComponent(); + + ucCalibrationConfig.UpdateConfig(aConfig); + + SystemId = sId; + Param = aParam; + Calib = aCalib; + + tmrDisplay.Enabled = true; + } + + public void InitComponent() + { + // Cell Voltage Calibration + ucCalibrationConfig.OnCommand += OnCmdEvent; + } + + #endregion + + #region COMMAND EVENT + + private void OnCmdEvent(int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib) + { + OnCommand?.Invoke(SystemId, mode, index, flag, ref aParam, ref aCalib); + } + + #endregion + + #region BUTTON EVENT + private void btnClose_Click(object sender, EventArgs e) + { + Close(); + } + #endregion + + #region TIMER EVENT + + private void tmrDisplay_Tick(object sender, EventArgs e) + { + + DisplayValue(); + if (OnUpdate != null) + { + OnUpdate(this); + } + } + + #endregion + + #region DISPLAY DATA + + private void DisplayValue() + { + // Cell Voltage Parameter + ucCalibrationConfig.UpdateData(SystemData, Calib); + } + + #endregion + + #region PUBLIC FUCTIONS + + public void UpdateData(DeviceParamData aParam, DeviceCalibration aCalib, DeviceSystemData aSystemData) + { + SystemData = aSystemData; + Param = aParam; + Calib = aCalib; + } + + #endregion + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxCalibration.resx b/LFP_Manager/Forms/fmxCalibration.resx new file mode 100644 index 0000000..4464ab1 --- /dev/null +++ b/LFP_Manager/Forms/fmxCalibration.resx @@ -0,0 +1,4574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA + GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/ + ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7///////////////////// + ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff///////// + ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+ + /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7///// + ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc + x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7///////////////////////////// + ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt + e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP + SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7///////// + ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z + WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS + Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8 + +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+ + /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+ + /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO + SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz + 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o + 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9 + /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE + oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG + PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7///// + ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH + PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t + 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/ + ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/ + ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7///////////////////////////// + ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+ + /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ + TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7///////////////// + ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ + TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+ + /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7///// + ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP + SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7///////////////////////////////////////// + ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/ + ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/ + ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7///////////////////////////// + ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/ + ///+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////+/v7////////+/v3////////////////////////+/v3////////+/v7///////////////// + ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7///////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + /////////v7+/v7///////////////////////////////////////////////////////////////// + ///////////////////////////+/v7////////+/v7///////////////////////////////////// + ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7///////////////////// + ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7 + +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9 + /Pz+/v7///////////////////////////////////////////////////////////////////////// + ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM + RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7///////////////////////////////////// + ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL + QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+ + /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP + SgCOSQCPTAKFOwDVvaT////9/Pv+/v7///////////////////////////////////////////////// + ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8 + +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7///////// + /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO + SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF + OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+ + ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/ + //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7///////////////////////// + ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/ + mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79 + /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN + RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ + TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7///// + ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7///// + ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+ + /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ + TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP + SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH + PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/ + ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5 + 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+ + /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ + QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE + oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/ + ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7///////////////////////// + ///////////////////////////////////////////////////////+/v7+//////////////////// + ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+ + /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9 + /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP + SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL + RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7///////////////////////////////// + ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/ + ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7///////// + ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP + SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI + PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/ + ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x + glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7///////////////////////////// + ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM + RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+ + /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/ + ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP + SgCOSgGLRQGTURDz7ef+/v39/f3+/v7///////////////////////////////////////////////// + ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+ + /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7///////////// + ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN + RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9 + /fz9/f3+/v7+/v7///////////////////////////////////////////////////////////////// + ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO + SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7///////////////////////////////////////// + ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO + SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7///// + //////////////////////////////////////////////////////////////////////////////// + ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS + UA/y6+X+/v39/fz+/v7+/v7///////////////////////////////////////////////////////// + ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP + SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7///////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+ + /v7///////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO + SQCOSQGJQQDi0cD////9/Pv+/v7///////////////////////////////////////////////////// + ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J + QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39 + /fz+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz + hFazhFayhFazhVete1TWvqb////9/fz+/v7///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7///////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+ + /f3+/f3///////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v7+//////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////v7+ + /f39//////////////////////////////////////////////////////////////////////////// + ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39 + /fz8/v79/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA + nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1//// + x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV + i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC + jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC + hz8Ap3I//fz7/fz8/v79/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7 + /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8 + +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p + /v39/f38/v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+ + ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb + 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//7+/f39 + /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7//// + 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+ + /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA + j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB + j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB + i0UAlVYZ8+3m/f79/f38/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+//////////////// + /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39 + /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+ + sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+ + /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+//////// + /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+ + /f39/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO + /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39 + 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39 + /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+//////////////////////////// + /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+//// + /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A + kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + jkoCikIC4tHA/////Pv7/v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC + hz4A1r6m/////Pz7/v7+/v7+/////v7+//////////////////////////////////////////////// + /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+ + /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+//////////////////// + /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM + /////Pv6/v7+/v7+/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA + j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+//////////////////////////////////////// + /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+ + /v7+/v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+ + /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7 + /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq//// + /Pv6/v7+/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A + j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA + kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA + j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6 + /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+//////// + /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+ + /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA + xaJ//////Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU + /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA + j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+//////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+//////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+//////////// + 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+ + /////v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39 + /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/ + /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6 + ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+ + /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC + kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB + kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39//// + /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA + hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA + iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A + j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU + z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+//////// + /v7+/////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7//v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn + +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3 + +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8 + /fz8/v7+/////v7+/////v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v///v7+/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT + z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7 + ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A + hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A + fS0AtIdb/f38/Pz8///+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D + kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL + jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+//////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA + jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3 + iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA + jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA + jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK + 6t7S/v7+/fz8/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+//////////////////////// + /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs//// + /Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7 + /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38 + /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fz8 + /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+//////////////////////////////////// + /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+ + /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA + jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A + pnA8/Pv6/fz7/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq + iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+ + /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+//////////// + /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+ + //7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A + 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES + jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+//////////////// + /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6 + /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7 + /v79/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v39 + /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8 + +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+ + /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ + hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ + 8+3m/f39/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+ + /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA + jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA + u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA + j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA + jkkCikQE49PC/v7//fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8 + /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+ + /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7//// + t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA + jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU + hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD + /////fz8//7//v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA + oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC + hj0Az7SX/////fz7//7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//7+ + /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH + jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA + jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT//// + /Pz8/v7//v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA + t4tf/////fz7/v7+/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs + mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6 + /v7+/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v7+ + /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx + +/n3/fz8/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+ + rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA + jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW + k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV + kU8TmVoj8ejg/v39/fz7/v7//f39/v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off + 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v////7+/v7+/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v39/v7+ + ///+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v////// + /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v79/////////v7+/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v79/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////9/Lt9/Pu + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2svnmMrzrGR/////fz7//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ + /v39/fz8/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h + /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0//// + 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC + j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + jUgBlFIO7uTa/////f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB + jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7 + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+ + /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38//////////////////// + /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z + iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+ + sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG//// + /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + hz4Ar35J/v39/fz8/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+//////// + /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38//////////////////////////////// + /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+//////////////////////////////////////////// + /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA + /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW + k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+ + /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+//////////////////// + /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iEAA176j/////fz7//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39//////////////////////////////////////////// + ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38 + /fz8/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEA1buf/////fz8/v7+/v7+//////////////////////////////////////////////////////// + /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+ + /////////////////////////////////////////////////////////////////////////////v7+ + /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+//////////// + /////////////////////////////////////////////////////////////////////fz7////yKaB + hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v///f38////sH9K + hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+//////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oBi0QAnmIj9vHs/v39/v39//////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA + nWAf9vHs/v7+/v79//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo//// + /fz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v///f38//// + 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8//////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/v79+/n3omor + ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm + +PTw/v39/f39//////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sBjEUAmVwb9e/p/v7+/f38//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A + vpVq/////fz7/v/+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8AyKaB/////fz7/v///v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39 + //7///////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC + jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsCiD8Auo9h/////fz8/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE + iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB + 4tC+/////f38/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjUcBk1EN7+Xb/////f39/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj + n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f38////u5Jlhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkBjUgE4M66/////fz7/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR + 7+bd/v7+/f39//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv + +/n4/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0 + rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6 + ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC + hz4AtolZ/////fz8/v3+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA + j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + j0sBikIApGww+vj1/v39/f39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ + j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M + /////Pz7/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkCjkkG4c+7/////fz7/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+///+/v39 + /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d//// + /fz7/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/f38/f38 + 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A + jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sBiD8AyKiE/////fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oBiUEApW4z+vj1/v39/v39//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ + /v7+/f38/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4 + 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD + 49PB/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/Pz7//// + 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6//// + /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A + j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC + iUEAqHQ7+/j2/fz8/v39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jUgBkk8K7ODV/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL//// + /f38/v7+///+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6//////// + ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A + ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38 + /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBiUEA1Lqd/////fv6//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38 + sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+//////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////v7+/v39 + /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq + 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38 + /v39/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjUgBkU4J6NrM/////fz8//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA + jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEArnxG/v7+/f38/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO + 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i//// + /Pz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA + hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39//////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr + vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g + 4M24/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY + llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+//////////////////////////// + /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsCiUEArXpD/v7//f39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB + ikMA1bqf/////fz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39 + /f38/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39 + /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/////////v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI + iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8//// + /fz8//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA + mVsZ8+zl/v38/fz8//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7 + /v7+//7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz7/v7+ + 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf + 9vHs/v79/fz8//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z + iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAi0YAl1gT8+3l/v7+/f39//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA + upFj/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC + hz4AwZty/////fz8/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////f39 + /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC + jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ + hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsChz4At4ta/////fz8/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjUgCkEwL6dzO/////fz7//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD + 38y3/////fz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v/+/f39/v79 + +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////fz8 + /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A + kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK + 5tbG/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBjUcB4M25/////f38/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos + +PTw/fz8/f39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA + kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB + iUAAq3dA/Pr4/fz7/f39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v///fz7 + ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA + j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0oBikMAomgq+vf0/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////Pz7////4M24 + i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiUEA0rea/////fz7/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7 + /v38/v39/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////f38/v79 + +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/f38 + ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + kEwChz4AxaJ8/////fz7/v7+//////////////////////////////////////////////////////// + ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA + 07mb/////Pz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU + /v7+/Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+//// + //////////////////////////////////////////////////////////////////////////////7/ + /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7///////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+//////////////////////////// + /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jEQAm10b9O/p/v7+/f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+//////////////////////////////////////// + /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7 + /v7//v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jUgAklAK6dzO/////f38/v////////////////////////////////////////////////////////// + /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6 + /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng + lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+ + /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiD8Au5Jl/////fz8/v7+//7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+//////////////////// + /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj + /v39/fz8/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+//////////////////////////// + /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8 + ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb//// + /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A + upFj/////fz8/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+ + /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7//////////////////////// + /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf + llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA + kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkBjUcA49LA/////f38/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79 + /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3 + qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8////0baX + iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD + /////fz8/v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA + nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA + qHI4/Pv5/v39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+ + iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + kEsChz8Az7KS/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7 + /v39/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v39 + /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////fz8////59jIj0oD + jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ + /////fz8//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB + llYW7+Xb/v7+/f38/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0wChz8AuIxc/v7+/fz7/v39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+ + /v39/v////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fv6 + ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAjkkBjEYA4M24/////fz8/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa + /////f38//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v39/fz7 + 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB + jUcE3sq2/////Pz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oBikMAomgq+fXy/v39/f39//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/fz7//// + 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq + +vf1/f38/f39//7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39 + tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS + yqqM38u2/////v79/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/v79//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v79/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxCommConfig.Designer.cs b/LFP_Manager/Forms/fmxCommConfig.Designer.cs new file mode 100644 index 0000000..e1ba7d2 --- /dev/null +++ b/LFP_Manager/Forms/fmxCommConfig.Designer.cs @@ -0,0 +1,108 @@ +namespace LFP_Manager.Forms +{ + partial class fmxCommConfig + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxCommConfig)); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.ucCommConfig1 = new LFP_Manager.Controls.ucCommConfig(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.ucCommConfig1); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(404, 596); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem1}); + this.layoutControlGroup1.Name = "layoutControlGroup1"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup1.Size = new System.Drawing.Size(404, 596); + this.layoutControlGroup1.TextVisible = false; + // + // ucCommConfig1 + // + this.ucCommConfig1.Location = new System.Drawing.Point(3, 3); + this.ucCommConfig1.Name = "ucCommConfig1"; + this.ucCommConfig1.Size = new System.Drawing.Size(398, 590); + this.ucCommConfig1.TabIndex = 4; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.ucCommConfig1; + this.layoutControlItem1.CustomizationFormText = "layoutControlItem1"; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(402, 594); + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // fmxCommConfig + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(404, 596); + this.Controls.Add(this.layoutControl1); + this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxCommConfig.IconOptions.Icon"))); + this.Name = "fmxCommConfig"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Communication Config"; + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private Controls.ucCommConfig ucCommConfig1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxCommConfig.cs b/LFP_Manager/Forms/fmxCommConfig.cs new file mode 100644 index 0000000..9c447b0 --- /dev/null +++ b/LFP_Manager/Forms/fmxCommConfig.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Linq; +using System.Windows.Forms; +using DevExpress.XtraEditors; + +namespace LFP_Manager.Forms +{ + public delegate void UpdateEvent(object aConfig); + + public partial class fmxCommConfig : DevExpress.XtraEditors.XtraForm + { + public event UpdateEvent OnUpdate = null; + + public fmxCommConfig() + { + InitializeComponent(); + + ucCommConfig1.OnClose += FormClose; + } + + private void FormClose(object Config, bool saved) + { + if (OnUpdate != null) + { + if (saved == true) + { + OnUpdate(Config); + } + } + Close(); + } + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxCommConfig.resx b/LFP_Manager/Forms/fmxCommConfig.resx new file mode 100644 index 0000000..cf8c6d2 --- /dev/null +++ b/LFP_Manager/Forms/fmxCommConfig.resx @@ -0,0 +1,4571 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA + GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/ + ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7///////////////////// + ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff///////// + ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+ + /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7///// + ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc + x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7///////////////////////////// + ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt + e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP + SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7///////// + ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z + WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS + Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8 + +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+ + /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+ + /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO + SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz + 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o + 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9 + /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE + oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG + PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7///// + ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH + PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t + 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/ + ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/ + ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7///////////////////////////// + ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+ + /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ + TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7///////////////// + ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ + TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+ + /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7///// + ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP + SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7///////////////////////////////////////// + ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/ + ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/ + ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7///////////////////////////// + ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/ + ///+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////+/v7////////+/v3////////////////////////+/v3////////+/v7///////////////// + ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7///////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + /////////v7+/v7///////////////////////////////////////////////////////////////// + ///////////////////////////+/v7////////+/v7///////////////////////////////////// + ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7///////////////////// + ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7 + +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9 + /Pz+/v7///////////////////////////////////////////////////////////////////////// + ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM + RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7///////////////////////////////////// + ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL + QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+ + /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP + SgCOSQCPTAKFOwDVvaT////9/Pv+/v7///////////////////////////////////////////////// + ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8 + +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7///////// + /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO + SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF + OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+ + ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/ + //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7///////////////////////// + ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/ + mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79 + /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN + RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ + TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7///// + ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7///// + ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+ + /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ + TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP + SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH + PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/ + ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5 + 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+ + /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ + QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE + oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/ + ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7///////////////////////// + ///////////////////////////////////////////////////////+/v7+//////////////////// + ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+ + /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9 + /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP + SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL + RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7///////////////////////////////// + ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/ + ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7///////// + ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP + SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI + PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/ + ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x + glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7///////////////////////////// + ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM + RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+ + /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/ + ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP + SgCOSgGLRQGTURDz7ef+/v39/f3+/v7///////////////////////////////////////////////// + ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+ + /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7///////////// + ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN + RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9 + /fz9/f3+/v7+/v7///////////////////////////////////////////////////////////////// + ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO + SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7///////////////////////////////////////// + ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO + SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7///// + //////////////////////////////////////////////////////////////////////////////// + ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS + UA/y6+X+/v39/fz+/v7+/v7///////////////////////////////////////////////////////// + ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP + SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7///////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+ + /v7///////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO + SQCOSQGJQQDi0cD////9/Pv+/v7///////////////////////////////////////////////////// + ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J + QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39 + /fz+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz + hFazhFayhFazhVete1TWvqb////9/fz+/v7///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7///////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+ + /f3+/f3///////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v7+//////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////v7+ + /f39//////////////////////////////////////////////////////////////////////////// + ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39 + /fz8/v79/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA + nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1//// + x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV + i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC + jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC + hz8Ap3I//fz7/fz8/v79/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7 + /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8 + +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p + /v39/f38/v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+ + ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb + 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//7+/f39 + /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7//// + 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+ + /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA + j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB + j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB + i0UAlVYZ8+3m/f79/f38/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+//////////////// + /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39 + /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+ + sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+ + /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+//////// + /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+ + /f39/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO + /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39 + 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39 + /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+//////////////////////////// + /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+//// + /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A + kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + jkoCikIC4tHA/////Pv7/v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC + hz4A1r6m/////Pz7/v7+/v7+/////v7+//////////////////////////////////////////////// + /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+ + /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+//////////////////// + /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM + /////Pv6/v7+/v7+/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA + j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+//////////////////////////////////////// + /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+ + /v7+/v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+ + /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7 + /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq//// + /Pv6/v7+/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A + j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA + kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA + j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6 + /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+//////// + /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+ + /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA + xaJ//////Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU + /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA + j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+//////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+//////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+//////////// + 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+ + /////v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39 + /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/ + /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6 + ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+ + /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC + kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB + kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39//// + /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA + hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA + iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A + j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU + z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+//////// + /v7+/////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7//v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn + +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3 + +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8 + /fz8/v7+/////v7+/////v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v///v7+/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT + z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7 + ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A + hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A + fS0AtIdb/f38/Pz8///+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D + kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL + jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+//////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA + jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3 + iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA + jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA + jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK + 6t7S/v7+/fz8/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+//////////////////////// + /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs//// + /Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7 + /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38 + /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fz8 + /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+//////////////////////////////////// + /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+ + /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA + jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A + pnA8/Pv6/fz7/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq + iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+ + /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+//////////// + /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+ + //7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A + 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES + jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+//////////////// + /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6 + /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7 + /v79/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v39 + /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8 + +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+ + /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ + hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ + 8+3m/f39/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+ + /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA + jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA + u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA + j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA + jkkCikQE49PC/v7//fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8 + /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+ + /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7//// + t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA + jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU + hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD + /////fz8//7//v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA + oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC + hj0Az7SX/////fz7//7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//7+ + /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH + jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA + jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT//// + /Pz8/v7//v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA + t4tf/////fz7/v7+/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs + mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6 + /v7+/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v7+ + /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx + +/n3/fz8/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+ + rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA + jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW + k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV + kU8TmVoj8ejg/v39/fz7/v7//f39/v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off + 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v////7+/v7+/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v39/v7+ + ///+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v////// + /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v79/////////v7+/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v79/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////9/Lt9/Pu + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2svnmMrzrGR/////fz7//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ + /v39/fz8/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h + /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0//// + 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC + j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + jUgBlFIO7uTa/////f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB + jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7 + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+ + /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38//////////////////// + /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z + iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+ + sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG//// + /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + hz4Ar35J/v39/fz8/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+//////// + /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38//////////////////////////////// + /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+//////////////////////////////////////////// + /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA + /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW + k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+ + /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+//////////////////// + /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iEAA176j/////fz7//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39//////////////////////////////////////////// + ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38 + /fz8/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEA1buf/////fz8/v7+/v7+//////////////////////////////////////////////////////// + /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+ + /////////////////////////////////////////////////////////////////////////////v7+ + /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+//////////// + /////////////////////////////////////////////////////////////////////fz7////yKaB + hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v///f38////sH9K + hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+//////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oBi0QAnmIj9vHs/v39/v39//////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA + nWAf9vHs/v7+/v79//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo//// + /fz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v///f38//// + 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8//////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/v79+/n3omor + ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm + +PTw/v39/f39//////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sBjEUAmVwb9e/p/v7+/f38//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A + vpVq/////fz7/v/+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8AyKaB/////fz7/v///v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39 + //7///////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC + jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsCiD8Auo9h/////fz8/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE + iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB + 4tC+/////f38/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjUcBk1EN7+Xb/////f39/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj + n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f38////u5Jlhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkBjUgE4M66/////fz7/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR + 7+bd/v7+/f39//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv + +/n4/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0 + rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6 + ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC + hz4AtolZ/////fz8/v3+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA + j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + j0sBikIApGww+vj1/v39/f39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ + j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M + /////Pz7/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkCjkkG4c+7/////fz7/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+///+/v39 + /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d//// + /fz7/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/f38/f38 + 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A + jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sBiD8AyKiE/////fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oBiUEApW4z+vj1/v39/v39//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ + /v7+/f38/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4 + 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD + 49PB/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/Pz7//// + 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6//// + /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A + j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC + iUEAqHQ7+/j2/fz8/v39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jUgBkk8K7ODV/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL//// + /f38/v7+///+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6//////// + ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A + ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38 + /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBiUEA1Lqd/////fv6//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38 + sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+//////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////v7+/v39 + /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq + 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38 + /v39/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjUgBkU4J6NrM/////fz8//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA + jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEArnxG/v7+/f38/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO + 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i//// + /Pz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA + hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39//////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr + vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g + 4M24/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY + llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+//////////////////////////// + /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsCiUEArXpD/v7//f39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB + ikMA1bqf/////fz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39 + /f38/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39 + /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/////////v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI + iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8//// + /fz8//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA + mVsZ8+zl/v38/fz8//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7 + /v7+//7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz7/v7+ + 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf + 9vHs/v79/fz8//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z + iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAi0YAl1gT8+3l/v7+/f39//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA + upFj/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC + hz4AwZty/////fz8/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////f39 + /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC + jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ + hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsChz4At4ta/////fz8/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjUgCkEwL6dzO/////fz7//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD + 38y3/////fz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v/+/f39/v79 + +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////fz8 + /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A + kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK + 5tbG/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBjUcB4M25/////f38/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos + +PTw/fz8/f39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA + kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB + iUAAq3dA/Pr4/fz7/f39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v///fz7 + ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA + j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0oBikMAomgq+vf0/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////Pz7////4M24 + i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiUEA0rea/////fz7/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7 + /v38/v39/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////f38/v79 + +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/f38 + ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + kEwChz4AxaJ8/////fz7/v7+//////////////////////////////////////////////////////// + ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA + 07mb/////Pz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU + /v7+/Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+//// + //////////////////////////////////////////////////////////////////////////////7/ + /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7///////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+//////////////////////////// + /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jEQAm10b9O/p/v7+/f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+//////////////////////////////////////// + /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7 + /v7//v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jUgAklAK6dzO/////f38/v////////////////////////////////////////////////////////// + /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6 + /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng + lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+ + /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiD8Au5Jl/////fz8/v7+//7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+//////////////////// + /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj + /v39/fz8/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+//////////////////////////// + /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8 + ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb//// + /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A + upFj/////fz8/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+ + /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7//////////////////////// + /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf + llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA + kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkBjUcA49LA/////f38/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79 + /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3 + qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8////0baX + iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD + /////fz8/v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA + nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA + qHI4/Pv5/v39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+ + iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + kEsChz8Az7KS/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7 + /v39/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v39 + /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////fz8////59jIj0oD + jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ + /////fz8//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB + llYW7+Xb/v7+/f38/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0wChz8AuIxc/v7+/fz7/v39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+ + /v39/v////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fv6 + ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAjkkBjEYA4M24/////fz8/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa + /////f38//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v39/fz7 + 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB + jUcE3sq2/////Pz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oBikMAomgq+fXy/v39/f39//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/fz7//// + 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq + +vf1/f38/f39//7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39 + tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS + yqqM38u2/////v79/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/v79//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v79/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxEtcStatus.Designer.cs b/LFP_Manager/Forms/fmxEtcStatus.Designer.cs new file mode 100644 index 0000000..47d5a7c --- /dev/null +++ b/LFP_Manager/Forms/fmxEtcStatus.Designer.cs @@ -0,0 +1,152 @@ + +namespace LFP_Manager.Forms +{ + partial class fmxEtcStatus + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxEtcStatus)); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.Root = new DevExpress.XtraLayout.LayoutControlGroup(); + this.EtcStatusView = new LFP_Manager.Controls.ucEtcStatusView(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.btnClose = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.tmrDisplay = new System.Windows.Forms.Timer(this.components); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.btnClose); + this.layoutControl1.Controls.Add(this.EtcStatusView); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(916, 145, 650, 400); + this.layoutControl1.Root = this.Root; + this.layoutControl1.Size = new System.Drawing.Size(612, 406); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // Root + // + this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.Root.GroupBordersVisible = false; + this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem1, + this.layoutControlItem2, + this.emptySpaceItem1}); + this.Root.Name = "Root"; + this.Root.Size = new System.Drawing.Size(612, 406); + this.Root.TextVisible = false; + // + // EtcStatusView + // + this.EtcStatusView.Location = new System.Drawing.Point(12, 12); + this.EtcStatusView.Name = "EtcStatusView"; + this.EtcStatusView.Size = new System.Drawing.Size(588, 347); + this.EtcStatusView.TabIndex = 4; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.EtcStatusView; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(592, 351); + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // btnClose + // + this.btnClose.Location = new System.Drawing.Point(495, 363); + this.btnClose.Name = "btnClose"; + this.btnClose.Size = new System.Drawing.Size(105, 31); + this.btnClose.StyleController = this.layoutControl1; + this.btnClose.TabIndex = 5; + this.btnClose.Text = "Close"; + this.btnClose.Click += new System.EventHandler(this.btnClose_Click); + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.btnClose; + this.layoutControlItem2.Location = new System.Drawing.Point(483, 351); + this.layoutControlItem2.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(109, 35); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.Location = new System.Drawing.Point(0, 351); + this.emptySpaceItem1.MinSize = new System.Drawing.Size(104, 24); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(483, 35); + this.emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // fmxEtcStatus + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(612, 406); + this.Controls.Add(this.layoutControl1); + this.IconOptions.Image = ((System.Drawing.Image)(resources.GetObject("fmxEtcStatus.IconOptions.Image"))); + this.Name = "fmxEtcStatus"; + this.Text = "fmxEtcStatus"; + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraEditors.SimpleButton btnClose; + private Controls.ucEtcStatusView EtcStatusView; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private System.Windows.Forms.Timer tmrDisplay; + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxEtcStatus.cs b/LFP_Manager/Forms/fmxEtcStatus.cs new file mode 100644 index 0000000..2de187d --- /dev/null +++ b/LFP_Manager/Forms/fmxEtcStatus.cs @@ -0,0 +1,100 @@ +using DevExpress.XtraEditors; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Controls; + +namespace LFP_Manager.Forms +{ + public partial class fmxEtcStatus : DevExpress.XtraEditors.XtraForm + { + public delegate void UpdateEvent(object sendor); + public delegate void CmdEvent(int sId, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib); + + #region VARIABLES + + int SystemId = 0; + DeviceSystemData SystemData; + DeviceParamData Param; + DeviceCalibration Calib; + + public event UpdateEvent OnUpdate = null; + public event CmdEvent OnCommand = null; + + #endregion + + #region CONSTRUCTORS + + public fmxEtcStatus() + { + InitializeComponent(); + } + + public fmxEtcStatus(int sId, DeviceCalibration aCalib) + { + InitializeComponent(); + + InitComponent(); + + SystemId = sId; + Calib = aCalib; + + tmrDisplay.Enabled = true; + } + + public void InitComponent() + { + EtcStatusView.OnCommand += OnCmdEvent; + } + + #endregion + + #region BUTTON EVENT + + private void btnClose_Click(object sender, EventArgs e) + { + Close(); + } + + #endregion + + #region COMMAND EVENT + + private void OnCmdEvent(int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib) + { + OnCommand?.Invoke(SystemId, mode, index, flag, ref aParam, ref aCalib); + } + + #endregion + + #region TIMER EVENT + + private void tmrDisplay_Tick(object sender, EventArgs e) + { + + DisplayValue(); + OnUpdate?.Invoke(this); + } + + #endregion + + #region DISPLAY DATA + + private void DisplayValue() + { + // Cell Voltage Parameter + EtcStatusView.UpdateData(SystemData); + } + + #endregion + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxEtcStatus.resx b/LFP_Manager/Forms/fmxEtcStatus.resx new file mode 100644 index 0000000..a14af06 --- /dev/null +++ b/LFP_Manager/Forms/fmxEtcStatus.resx @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAATMSURBVFhH5VVrbBVVED63bUr4pTESFWPE+Idf2qAxiqiF + giAV0fiIGgJq4g/wkUiMlWI0kj5oS61VUwWurUDRiAUqmAhBHq2t+CgqhRJoCzWt+Kj0Wnqh79txvtmd + 7V66d7v4hxgnmZzdPTNnvvlmzqyhSyz/HQAjIyPO6qdqE1QCAXAfGPM53L0XFMRFMaCHRqJ91HW219Ez + 3b3Ufb5f9tx2QWRcAHrg0HBM3nc3tNGkhe/QpMffpysfK3N08qNldPhkp9gMs21QIL4A9IBYLEbDrH0D + QzT12Qoy6avJ3PcWmbnFluL5rjyamfUZvMQ2SHBIIAY0+1UfHyRzZy4lL3jbCjq/xFJ+Tr6fvzGITXub + xBY+QVhICECdQSeaq+XXCE3MLKGQZsyBQ3gXAPY6u4iueeIDivT0CQvChH1WIhm3BJr9A29Wk7k7n5Iy + rewl4L1ruASsNgtJYGFGHr207oD4DNos+IknAM1+cGhY3j8/2EpmVoFFswbiUixfu58eyd0pQeUb9hjM + BF61IccrxRgAaojGg/O53gG68akwheYUcfYW1aE5a+gq7nw0ZcvpCKXOK6YkDuqAm1lA6Vlb7CT8WRgL + AMoOSn32R3VxjSfrPfm0Yc9R2Ye8WvG1NKBjAxD8Xrn3mOz7sRAHQI30Hh9v77KyY/XKDgej0Xp4CE1Z + sl6Y0cYM2Q35Nw8t2IBRjeEWzxIAAGT+69usxnPqy9nxLfip9U8HgPbJlprjYpvKQwoMYMX7CmYHoixc + KA4AbOqhkO31LXbXJ+hwDozMYI9ewIpBZNLe4JLlkZmeS+aOHDK351BNYwfbjjLrBiIA9INMPDaKnh+g + KYvXk8kotOi0Kb1u0To6e65fArOT+LgF/4VsBphdUSeZr9xQR6+U7aPqb1pl34uFOAaUzqzy2virhZXZ + +JRphgAkhk1D8x+059AvVLH7CJVsbaDwl430xfenaMe3rXJ1oTu/O0mffNVE9U2nLV8G72bB6IvSc7Tt + L7nHqLcEx+Dhrp+dXSVZqx3AdjMbHZ09dOBwO73GGV+/aK1VAqYdgKUUM7gU03Po8ofepd/ORMc0JAOw + HnAwJGNFFQdcPZo9K27CkbZOGckKwEvwvXxXI13Nf0bDcyN1YSml8DkTHrQacnHxLrFzl4JLMNp4m/cd + 4/ub70w8uddcCtxzCLJWR6yqyAp7mtmJjghNffpDq4e0ibHOKqT9P7eLjYIweMABqOm1TzKFGUWjjcdZ + 3LAkTFGehrCBQhQEREHo88DgkDw388/rMr6KSfO0lAwgvYBuXraRbfgGcVwANr39lsNy7l7UzKEeDlz7 + bfXNsq/Zu4O7Rfbstd8GUVr949hm5veS7YdkH9dXbkHjqU5pvBTOGoFTFpRKzeau3CqGXtfHS9QGmcEH + etPSjTI9UU6cncz9dMXD79HvXVG24xLgXk97vtLqXK4ZjBE8hSfeiY6uuMYLCgJqgSaq5SEkN4Lpl7N5 + npjbVlEmT1mIyQrXUtpzm2jaC5UC5NYXN1MaN1Bh1Q9i4Nf1fgIf7ZmXwzWU9ky5nI0Yt7Ai5g785lGH + RILsNfjFgHD7+Pmh/5xRjGCq8s71UfE7JJGoj57lFQPiTEIvhej6b+TC87zU+RdcKvm/AyD6B4yX+amq + vYT8AAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxExcelFile.Designer.cs b/LFP_Manager/Forms/fmxExcelFile.Designer.cs new file mode 100644 index 0000000..5070213 --- /dev/null +++ b/LFP_Manager/Forms/fmxExcelFile.Designer.cs @@ -0,0 +1,776 @@ +namespace LFP_Manager +{ + partial class fmxExcelFile + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxExcelFile)); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.tbPcbSn = new DevExpress.XtraEditors.TextEdit(); + this.btnOpenDbFolder = new DevExpress.XtraEditors.SimpleButton(); + this.edResultCount = new DevExpress.XtraEditors.TextEdit(); + this.btnResultListClear = new DevExpress.XtraEditors.SimpleButton(); + this.btnSearchPcbSn = new DevExpress.XtraEditors.SimpleButton(); + this.btnOutputAll = new DevExpress.XtraEditors.SimpleButton(); + this.btnDeleteQuery = new DevExpress.XtraEditors.SimpleButton(); + this.btnCreateNewDb = new DevExpress.XtraEditors.SimpleButton(); + this.btnCheckGroupData = new DevExpress.XtraEditors.SimpleButton(); + this.cbResultList = new DevExpress.XtraEditors.ComboBoxEdit(); + this.cbLotNo = new DevExpress.XtraEditors.ComboBoxEdit(); + this.btnExcuteTCell = new DevExpress.XtraEditors.SimpleButton(); + this.gbDbCommnad = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl(); + this.btnOpenSchema = new DevExpress.XtraEditors.SimpleButton(); + this.btnDbMerge = new DevExpress.XtraEditors.SimpleButton(); + this.btnQueryExcute = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem(); + this.tbSchema = new System.Windows.Forms.TextBox(); + this.gridCell = new System.Windows.Forms.DataGridView(); + this.btnFindFile = new DevExpress.XtraEditors.SimpleButton(); + this.edFileName = new DevExpress.XtraEditors.TextEdit(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcitemLot = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem15 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem16 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem18 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem17 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem19 = new DevExpress.XtraLayout.LayoutControlItem(); + this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); + this.btnDbFileFind = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControlItem20 = new DevExpress.XtraLayout.LayoutControlItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.tbPcbSn.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.edResultCount.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbResultList.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbLotNo.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbDbCommnad)).BeginInit(); + this.gbDbCommnad.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit(); + this.layoutControl2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gridCell)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.edFileName.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemLot)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.btnDbFileFind); + this.layoutControl1.Controls.Add(this.tbPcbSn); + this.layoutControl1.Controls.Add(this.btnOpenDbFolder); + this.layoutControl1.Controls.Add(this.edResultCount); + this.layoutControl1.Controls.Add(this.btnResultListClear); + this.layoutControl1.Controls.Add(this.btnSearchPcbSn); + this.layoutControl1.Controls.Add(this.btnOutputAll); + this.layoutControl1.Controls.Add(this.btnDeleteQuery); + this.layoutControl1.Controls.Add(this.btnCreateNewDb); + this.layoutControl1.Controls.Add(this.btnCheckGroupData); + this.layoutControl1.Controls.Add(this.cbResultList); + this.layoutControl1.Controls.Add(this.cbLotNo); + this.layoutControl1.Controls.Add(this.btnExcuteTCell); + this.layoutControl1.Controls.Add(this.gbDbCommnad); + this.layoutControl1.Controls.Add(this.tbSchema); + this.layoutControl1.Controls.Add(this.gridCell); + this.layoutControl1.Controls.Add(this.btnFindFile); + this.layoutControl1.Controls.Add(this.edFileName); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1347, 290, 250, 350); + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(999, 578); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // tbPcbSn + // + this.tbPcbSn.Location = new System.Drawing.Point(681, 265); + this.tbPcbSn.Name = "tbPcbSn"; + this.tbPcbSn.Size = new System.Drawing.Size(163, 20); + this.tbPcbSn.StyleController = this.layoutControl1; + this.tbPcbSn.TabIndex = 23; + // + // btnOpenDbFolder + // + this.btnOpenDbFolder.Location = new System.Drawing.Point(894, 12); + this.btnOpenDbFolder.Name = "btnOpenDbFolder"; + this.btnOpenDbFolder.Size = new System.Drawing.Size(93, 22); + this.btnOpenDbFolder.StyleController = this.layoutControl1; + this.btnOpenDbFolder.TabIndex = 22; + this.btnOpenDbFolder.Text = "Open DB Folder"; + this.btnOpenDbFolder.Click += new System.EventHandler(this.btnOpenDbFolder_Click); + // + // edResultCount + // + this.edResultCount.Location = new System.Drawing.Point(89, 265); + this.edResultCount.Name = "edResultCount"; + this.edResultCount.Size = new System.Drawing.Size(59, 20); + this.edResultCount.StyleController = this.layoutControl1; + this.edResultCount.TabIndex = 21; + // + // btnResultListClear + // + this.btnResultListClear.Location = new System.Drawing.Point(402, 265); + this.btnResultListClear.Name = "btnResultListClear"; + this.btnResultListClear.Size = new System.Drawing.Size(89, 22); + this.btnResultListClear.StyleController = this.layoutControl1; + this.btnResultListClear.TabIndex = 20; + this.btnResultListClear.Text = "Clear"; + this.btnResultListClear.Click += new System.EventHandler(this.btnResultListClear_Click); + // + // btnSearchPcbSn + // + this.btnSearchPcbSn.Location = new System.Drawing.Point(848, 265); + this.btnSearchPcbSn.Name = "btnSearchPcbSn"; + this.btnSearchPcbSn.Size = new System.Drawing.Size(139, 22); + this.btnSearchPcbSn.StyleController = this.layoutControl1; + this.btnSearchPcbSn.TabIndex = 19; + this.btnSearchPcbSn.Text = "Search PCB SN"; + this.btnSearchPcbSn.Click += new System.EventHandler(this.btnModuleResult_Click); + // + // btnOutputAll + // + this.btnOutputAll.Location = new System.Drawing.Point(897, 229); + this.btnOutputAll.Name = "btnOutputAll"; + this.btnOutputAll.Size = new System.Drawing.Size(90, 32); + this.btnOutputAll.StyleController = this.layoutControl1; + this.btnOutputAll.TabIndex = 18; + this.btnOutputAll.Text = "Output All"; + this.btnOutputAll.Click += new System.EventHandler(this.btnOutputAll_Click); + // + // btnDeleteQuery + // + this.btnDeleteQuery.Location = new System.Drawing.Point(740, 229); + this.btnDeleteQuery.Name = "btnDeleteQuery"; + this.btnDeleteQuery.Size = new System.Drawing.Size(123, 32); + this.btnDeleteQuery.StyleController = this.layoutControl1; + this.btnDeleteQuery.TabIndex = 17; + this.btnDeleteQuery.Text = "Delete Query"; + this.btnDeleteQuery.Click += new System.EventHandler(this.btnCheckMeasData_Click); + // + // btnCreateNewDb + // + this.btnCreateNewDb.Location = new System.Drawing.Point(867, 197); + this.btnCreateNewDb.Name = "btnCreateNewDb"; + this.btnCreateNewDb.Size = new System.Drawing.Size(120, 28); + this.btnCreateNewDb.StyleController = this.layoutControl1; + this.btnCreateNewDb.TabIndex = 16; + this.btnCreateNewDb.Text = "Create New DB"; + this.btnCreateNewDb.Click += new System.EventHandler(this.btnCreateNewDb_Click); + // + // btnCheckGroupData + // + this.btnCheckGroupData.Location = new System.Drawing.Point(740, 197); + this.btnCheckGroupData.Name = "btnCheckGroupData"; + this.btnCheckGroupData.Size = new System.Drawing.Size(123, 28); + this.btnCheckGroupData.StyleController = this.layoutControl1; + this.btnCheckGroupData.TabIndex = 15; + this.btnCheckGroupData.Text = "Select All"; + this.btnCheckGroupData.Click += new System.EventHandler(this.btnCheckGroupData_Click); + // + // cbResultList + // + this.cbResultList.Location = new System.Drawing.Point(237, 265); + this.cbResultList.Name = "cbResultList"; + this.cbResultList.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F); + this.cbResultList.Properties.Appearance.Options.UseFont = true; + this.cbResultList.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.cbResultList.Size = new System.Drawing.Size(161, 22); + this.cbResultList.StyleController = this.layoutControl1; + this.cbResultList.TabIndex = 14; + this.cbResultList.SelectedIndexChanged += new System.EventHandler(this.cbResultList_SelectedIndexChanged); + // + // cbLotNo + // + this.cbLotNo.Location = new System.Drawing.Point(805, 147); + this.cbLotNo.Name = "cbLotNo"; + this.cbLotNo.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.cbLotNo.Size = new System.Drawing.Size(182, 20); + this.cbLotNo.StyleController = this.layoutControl1; + this.cbLotNo.TabIndex = 13; + // + // btnExcuteTCell + // + this.btnExcuteTCell.Location = new System.Drawing.Point(740, 171); + this.btnExcuteTCell.Name = "btnExcuteTCell"; + this.btnExcuteTCell.Size = new System.Drawing.Size(247, 22); + this.btnExcuteTCell.StyleController = this.layoutControl1; + this.btnExcuteTCell.TabIndex = 12; + this.btnExcuteTCell.Text = "SQL Excute"; + this.btnExcuteTCell.Click += new System.EventHandler(this.btnExcuteTCell_Click); + // + // gbDbCommnad + // + this.gbDbCommnad.Controls.Add(this.layoutControl2); + this.gbDbCommnad.Location = new System.Drawing.Point(740, 38); + this.gbDbCommnad.Name = "gbDbCommnad"; + this.gbDbCommnad.Size = new System.Drawing.Size(247, 105); + this.gbDbCommnad.TabIndex = 11; + this.gbDbCommnad.Text = "Management DB"; + // + // layoutControl2 + // + this.layoutControl2.Controls.Add(this.btnOpenSchema); + this.layoutControl2.Controls.Add(this.btnDbMerge); + this.layoutControl2.Controls.Add(this.btnQueryExcute); + this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl2.Location = new System.Drawing.Point(2, 23); + this.layoutControl2.Name = "layoutControl2"; + this.layoutControl2.Root = this.layoutControlGroup2; + this.layoutControl2.Size = new System.Drawing.Size(243, 80); + this.layoutControl2.TabIndex = 0; + this.layoutControl2.Text = "layoutControl2"; + // + // btnOpenSchema + // + this.btnOpenSchema.Location = new System.Drawing.Point(3, 3); + this.btnOpenSchema.Name = "btnOpenSchema"; + this.btnOpenSchema.Size = new System.Drawing.Size(237, 22); + this.btnOpenSchema.StyleController = this.layoutControl2; + this.btnOpenSchema.TabIndex = 8; + this.btnOpenSchema.Text = "Open Schema"; + this.btnOpenSchema.Click += new System.EventHandler(this.btnOpenSchema_Click); + // + // btnDbMerge + // + this.btnDbMerge.Location = new System.Drawing.Point(3, 55); + this.btnDbMerge.Name = "btnDbMerge"; + this.btnDbMerge.Size = new System.Drawing.Size(237, 22); + this.btnDbMerge.StyleController = this.layoutControl2; + this.btnDbMerge.TabIndex = 10; + this.btnDbMerge.Text = "BMS Data Merse"; + this.btnDbMerge.Click += new System.EventHandler(this.btnBmsBmsDataMerse_Click); + // + // btnQueryExcute + // + this.btnQueryExcute.Location = new System.Drawing.Point(3, 29); + this.btnQueryExcute.Name = "btnQueryExcute"; + this.btnQueryExcute.Size = new System.Drawing.Size(237, 22); + this.btnQueryExcute.StyleController = this.layoutControl2; + this.btnQueryExcute.TabIndex = 9; + this.btnQueryExcute.Text = "Query Excute"; + this.btnQueryExcute.Click += new System.EventHandler(this.btnQueryExcute_Click); + // + // layoutControlGroup2 + // + this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2"; + this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup2.GroupBordersVisible = false; + this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem5, + this.layoutControlItem6, + this.layoutControlItem7}); + this.layoutControlGroup2.Name = "layoutControlGroup2"; + this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup2.Size = new System.Drawing.Size(243, 80); + this.layoutControlGroup2.TextVisible = false; + // + // layoutControlItem5 + // + this.layoutControlItem5.Control = this.btnOpenSchema; + this.layoutControlItem5.CustomizationFormText = "layoutControlItem5"; + this.layoutControlItem5.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem5.Name = "layoutControlItem5"; + this.layoutControlItem5.Size = new System.Drawing.Size(241, 26); + this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem5.TextVisible = false; + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.btnQueryExcute; + this.layoutControlItem6.CustomizationFormText = "layoutControlItem6"; + this.layoutControlItem6.Location = new System.Drawing.Point(0, 26); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(241, 26); + this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem6.TextVisible = false; + // + // layoutControlItem7 + // + this.layoutControlItem7.Control = this.btnDbMerge; + this.layoutControlItem7.CustomizationFormText = "layoutControlItem7"; + this.layoutControlItem7.Location = new System.Drawing.Point(0, 52); + this.layoutControlItem7.Name = "layoutControlItem7"; + this.layoutControlItem7.Size = new System.Drawing.Size(241, 26); + this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem7.TextVisible = false; + // + // tbSchema + // + this.tbSchema.Location = new System.Drawing.Point(12, 38); + this.tbSchema.Multiline = true; + this.tbSchema.Name = "tbSchema"; + this.tbSchema.ScrollBars = System.Windows.Forms.ScrollBars.Both; + this.tbSchema.Size = new System.Drawing.Size(724, 223); + this.tbSchema.TabIndex = 7; + // + // gridCell + // + this.gridCell.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.gridCell.Location = new System.Drawing.Point(12, 291); + this.gridCell.Name = "gridCell"; + this.gridCell.RowTemplate.Height = 23; + this.gridCell.Size = new System.Drawing.Size(975, 275); + this.gridCell.TabIndex = 6; + // + // btnFindFile + // + this.btnFindFile.Location = new System.Drawing.Point(712, 12); + this.btnFindFile.Name = "btnFindFile"; + this.btnFindFile.Size = new System.Drawing.Size(89, 22); + this.btnFindFile.StyleController = this.layoutControl1; + this.btnFindFile.TabIndex = 5; + this.btnFindFile.Text = "Excel File ...."; + this.btnFindFile.Click += new System.EventHandler(this.btnFindFile_Click); + // + // edFileName + // + this.edFileName.Location = new System.Drawing.Point(89, 12); + this.edFileName.Name = "edFileName"; + this.edFileName.Size = new System.Drawing.Size(619, 20); + this.edFileName.StyleController = this.layoutControl1; + this.edFileName.TabIndex = 4; + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem1, + this.layoutControlItem2, + this.emptySpaceItem1, + this.layoutControlItem3, + this.layoutControlItem4, + this.layoutControlItem8, + this.layoutControlItem9, + this.lcitemLot, + this.layoutControlItem10, + this.emptySpaceItem2, + this.layoutControlItem11, + this.layoutControlItem12, + this.layoutControlItem13, + this.layoutControlItem14, + this.layoutControlItem15, + this.layoutControlItem16, + this.layoutControlItem18, + this.layoutControlItem17, + this.layoutControlItem19, + this.layoutControlItem20}); + this.layoutControlGroup1.Name = "layoutControlGroup1"; + this.layoutControlGroup1.Size = new System.Drawing.Size(999, 578); + this.layoutControlGroup1.TextVisible = false; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.edFileName; + this.layoutControlItem1.CustomizationFormText = "layoutControlItem1"; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.MinSize = new System.Drawing.Size(162, 24); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(700, 26); + this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem1.Text = "File Name: "; + this.layoutControlItem1.TextSize = new System.Drawing.Size(74, 14); + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.btnFindFile; + this.layoutControlItem2.CustomizationFormText = "layoutControlItem2"; + this.layoutControlItem2.Location = new System.Drawing.Point(700, 0); + this.layoutControlItem2.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(93, 26); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1"; + this.emptySpaceItem1.Location = new System.Drawing.Point(855, 217); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(30, 36); + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.gridCell; + this.layoutControlItem3.CustomizationFormText = "layoutControlItem3"; + this.layoutControlItem3.Location = new System.Drawing.Point(0, 279); + this.layoutControlItem3.MinSize = new System.Drawing.Size(104, 24); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(979, 279); + this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextVisible = false; + // + // layoutControlItem4 + // + this.layoutControlItem4.Control = this.tbSchema; + this.layoutControlItem4.CustomizationFormText = "layoutControlItem4"; + this.layoutControlItem4.Location = new System.Drawing.Point(0, 26); + this.layoutControlItem4.MinSize = new System.Drawing.Size(132, 24); + this.layoutControlItem4.Name = "layoutControlItem4"; + this.layoutControlItem4.Size = new System.Drawing.Size(728, 227); + this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem4.TextVisible = false; + // + // layoutControlItem8 + // + this.layoutControlItem8.Control = this.gbDbCommnad; + this.layoutControlItem8.CustomizationFormText = "layoutControlItem8"; + this.layoutControlItem8.Location = new System.Drawing.Point(728, 26); + this.layoutControlItem8.Name = "layoutControlItem8"; + this.layoutControlItem8.Size = new System.Drawing.Size(251, 109); + this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem8.TextVisible = false; + // + // layoutControlItem9 + // + this.layoutControlItem9.Control = this.btnExcuteTCell; + this.layoutControlItem9.CustomizationFormText = "layoutControlItem9"; + this.layoutControlItem9.Location = new System.Drawing.Point(728, 159); + this.layoutControlItem9.Name = "layoutControlItem9"; + this.layoutControlItem9.Size = new System.Drawing.Size(251, 26); + this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem9.TextVisible = false; + // + // lcitemLot + // + this.lcitemLot.Control = this.cbLotNo; + this.lcitemLot.CustomizationFormText = " Lot No"; + this.lcitemLot.Location = new System.Drawing.Point(728, 135); + this.lcitemLot.Name = "lcitemLot"; + this.lcitemLot.Size = new System.Drawing.Size(251, 24); + this.lcitemLot.Text = " Lot No"; + this.lcitemLot.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.lcitemLot.TextSize = new System.Drawing.Size(60, 14); + this.lcitemLot.TextToControlDistance = 5; + // + // layoutControlItem10 + // + this.layoutControlItem10.Control = this.cbResultList; + this.layoutControlItem10.CustomizationFormText = " Result List"; + this.layoutControlItem10.Location = new System.Drawing.Point(140, 253); + this.layoutControlItem10.MaxSize = new System.Drawing.Size(0, 26); + this.layoutControlItem10.MinSize = new System.Drawing.Size(187, 26); + this.layoutControlItem10.Name = "layoutControlItem10"; + this.layoutControlItem10.Size = new System.Drawing.Size(250, 26); + this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem10.Text = " Result List"; + this.layoutControlItem10.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.layoutControlItem10.TextSize = new System.Drawing.Size(80, 14); + this.layoutControlItem10.TextToControlDistance = 5; + // + // emptySpaceItem2 + // + this.emptySpaceItem2.AllowHotTrack = false; + this.emptySpaceItem2.CustomizationFormText = "emptySpaceItem2"; + this.emptySpaceItem2.Location = new System.Drawing.Point(483, 253); + this.emptySpaceItem2.Name = "emptySpaceItem2"; + this.emptySpaceItem2.Size = new System.Drawing.Size(109, 26); + this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem11 + // + this.layoutControlItem11.Control = this.btnCheckGroupData; + this.layoutControlItem11.CustomizationFormText = "layoutControlItem11"; + this.layoutControlItem11.Location = new System.Drawing.Point(728, 185); + this.layoutControlItem11.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem11.Name = "layoutControlItem11"; + this.layoutControlItem11.Size = new System.Drawing.Size(127, 32); + this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem11.TextVisible = false; + // + // layoutControlItem12 + // + this.layoutControlItem12.Control = this.btnCreateNewDb; + this.layoutControlItem12.CustomizationFormText = "layoutControlItem12"; + this.layoutControlItem12.Location = new System.Drawing.Point(855, 185); + this.layoutControlItem12.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem12.Name = "layoutControlItem12"; + this.layoutControlItem12.Size = new System.Drawing.Size(124, 32); + this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem12.TextVisible = false; + // + // layoutControlItem13 + // + this.layoutControlItem13.Control = this.btnDeleteQuery; + this.layoutControlItem13.CustomizationFormText = "layoutControlItem13"; + this.layoutControlItem13.Location = new System.Drawing.Point(728, 217); + this.layoutControlItem13.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem13.Name = "layoutControlItem13"; + this.layoutControlItem13.Size = new System.Drawing.Size(127, 36); + this.layoutControlItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem13.TextVisible = false; + // + // layoutControlItem14 + // + this.layoutControlItem14.Control = this.btnOutputAll; + this.layoutControlItem14.CustomizationFormText = "layoutControlItem14"; + this.layoutControlItem14.Location = new System.Drawing.Point(885, 217); + this.layoutControlItem14.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem14.Name = "layoutControlItem14"; + this.layoutControlItem14.Size = new System.Drawing.Size(94, 36); + this.layoutControlItem14.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem14.TextVisible = false; + // + // layoutControlItem15 + // + this.layoutControlItem15.Control = this.btnSearchPcbSn; + this.layoutControlItem15.CustomizationFormText = "layoutControlItem15"; + this.layoutControlItem15.Location = new System.Drawing.Point(836, 253); + this.layoutControlItem15.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem15.Name = "layoutControlItem15"; + this.layoutControlItem15.Size = new System.Drawing.Size(143, 26); + this.layoutControlItem15.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem15.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem15.TextVisible = false; + // + // layoutControlItem16 + // + this.layoutControlItem16.Control = this.btnResultListClear; + this.layoutControlItem16.CustomizationFormText = "layoutControlItem16"; + this.layoutControlItem16.Location = new System.Drawing.Point(390, 253); + this.layoutControlItem16.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem16.Name = "layoutControlItem16"; + this.layoutControlItem16.Size = new System.Drawing.Size(93, 26); + this.layoutControlItem16.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem16.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem16.TextVisible = false; + // + // layoutControlItem18 + // + this.layoutControlItem18.Control = this.btnOpenDbFolder; + this.layoutControlItem18.CustomizationFormText = "layoutControlItem18"; + this.layoutControlItem18.Location = new System.Drawing.Point(882, 0); + this.layoutControlItem18.Name = "layoutControlItem18"; + this.layoutControlItem18.Size = new System.Drawing.Size(97, 26); + this.layoutControlItem18.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem18.TextVisible = false; + // + // layoutControlItem17 + // + this.layoutControlItem17.Control = this.edResultCount; + this.layoutControlItem17.CustomizationFormText = "layoutControlItem17"; + this.layoutControlItem17.Location = new System.Drawing.Point(0, 253); + this.layoutControlItem17.MinSize = new System.Drawing.Size(54, 24); + this.layoutControlItem17.Name = "layoutControlItem17"; + this.layoutControlItem17.Size = new System.Drawing.Size(140, 26); + this.layoutControlItem17.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem17.Text = "Result Count "; + this.layoutControlItem17.TextSize = new System.Drawing.Size(74, 14); + // + // layoutControlItem19 + // + this.layoutControlItem19.Control = this.tbPcbSn; + this.layoutControlItem19.CustomizationFormText = "PCB SN"; + this.layoutControlItem19.Location = new System.Drawing.Point(592, 253); + this.layoutControlItem19.MinSize = new System.Drawing.Size(131, 24); + this.layoutControlItem19.Name = "layoutControlItem19"; + this.layoutControlItem19.Size = new System.Drawing.Size(244, 26); + this.layoutControlItem19.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem19.Text = "PCB SN"; + this.layoutControlItem19.TextSize = new System.Drawing.Size(74, 14); + // + // openFileDialog1 + // + this.openFileDialog1.FileName = "openFileDialog1"; + // + // btnDbFileFind + // + this.btnDbFileFind.Location = new System.Drawing.Point(805, 12); + this.btnDbFileFind.Name = "btnDbFileFind"; + this.btnDbFileFind.Size = new System.Drawing.Size(85, 22); + this.btnDbFileFind.StyleController = this.layoutControl1; + this.btnDbFileFind.TabIndex = 24; + this.btnDbFileFind.Text = "DB Files ..."; + this.btnDbFileFind.Click += new System.EventHandler(this.btnDbFileFind_Click); + // + // layoutControlItem20 + // + this.layoutControlItem20.Control = this.btnDbFileFind; + this.layoutControlItem20.Location = new System.Drawing.Point(793, 0); + this.layoutControlItem20.Name = "layoutControlItem20"; + this.layoutControlItem20.Size = new System.Drawing.Size(89, 26); + this.layoutControlItem20.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem20.TextVisible = false; + // + // fmxExcelFile + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(999, 578); + this.Controls.Add(this.layoutControl1); + this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxExcelFile.IconOptions.Icon"))); + this.Name = "fmxExcelFile"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Database Control"; + this.Load += new System.EventHandler(this.fmxExcelFile_Load); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.tbPcbSn.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.edResultCount.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbResultList.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.cbLotNo.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbDbCommnad)).EndInit(); + this.gbDbCommnad.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit(); + this.layoutControl2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gridCell)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.edFileName.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemLot)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem18)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem17)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem20)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraEditors.SimpleButton btnFindFile; + private DevExpress.XtraEditors.TextEdit edFileName; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private System.Windows.Forms.DataGridView gridCell; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private System.Windows.Forms.TextBox tbSchema; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private DevExpress.XtraEditors.SimpleButton btnOpenSchema; + private DevExpress.XtraEditors.SimpleButton btnQueryExcute; + private DevExpress.XtraEditors.GroupControl gbDbCommnad; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8; + private DevExpress.XtraLayout.LayoutControl layoutControl2; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private DevExpress.XtraEditors.SimpleButton btnExcuteTCell; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9; + private DevExpress.XtraEditors.ComboBoxEdit cbLotNo; + private DevExpress.XtraLayout.LayoutControlItem lcitemLot; + private DevExpress.XtraEditors.ComboBoxEdit cbResultList; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2; + private DevExpress.XtraEditors.SimpleButton btnCheckGroupData; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11; + private DevExpress.XtraEditors.SimpleButton btnCreateNewDb; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12; + private DevExpress.XtraEditors.SimpleButton btnDeleteQuery; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13; + private DevExpress.XtraEditors.SimpleButton btnOutputAll; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14; + private DevExpress.XtraEditors.SimpleButton btnSearchPcbSn; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem15; + private DevExpress.XtraEditors.SimpleButton btnResultListClear; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem16; + private DevExpress.XtraEditors.TextEdit edResultCount; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem17; + private DevExpress.XtraEditors.SimpleButton btnOpenDbFolder; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem18; + private DevExpress.XtraEditors.TextEdit tbPcbSn; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem19; + private DevExpress.XtraEditors.SimpleButton btnDbMerge; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7; + private System.Windows.Forms.OpenFileDialog openFileDialog1; + private DevExpress.XtraEditors.SimpleButton btnDbFileFind; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem20; + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxExcelFile.cs b/LFP_Manager/Forms/fmxExcelFile.cs new file mode 100644 index 0000000..e5f509e --- /dev/null +++ b/LFP_Manager/Forms/fmxExcelFile.cs @@ -0,0 +1,363 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Linq; +using System.Windows.Forms; +using DevExpress.XtraEditors; +using System.Data.SQLite; + +using System.IO; + +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Utils; + +namespace LFP_Manager +{ + public partial class fmxExcelFile : DevExpress.XtraEditors.XtraForm + { + #region VARIABLES + + string[] dbFiles; + //private string Excel03ConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'"; + //private string Excel07ConString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'"; + //Workbook workbook; + DataSet dsCell; + DataTable dtCell; + + CommConfig Config; + + #endregion + + #region CONSTRUCTORS + + public fmxExcelFile(CommConfig aConfig) + { + InitializeComponent(); + + Config = aConfig; + //tbSchema.Text = "select * from TInventoryData" + "\r\n" + "where pcb_sn like 'BMU18SA20120169%'"; + } + + #endregion + + #region FORM EVENT + private void fmxExcelFile_Load(object sender, EventArgs e) + { + string dbfilePath = Path.GetDirectoryName(Application.ExecutablePath) + @"\db"; + dbFiles = Directory.GetFiles(dbfilePath, "*.db", SearchOption.AllDirectories); + + if (dbFiles.Length > 0) + { + for (int i = 0; i < dbFiles.Length; i++) + { + cbLotNo.Properties.Items.Add(Path.GetFileName(dbFiles[i])); + } + cbLotNo.SelectedIndex = 0; + } + } + #endregion + + // Copy Table Value + // INSERT INTO TModuleResultBak SELECT * FROM TModuleResult + // INSERT INTO [TModuleBmsBak] (sn, result, module_ocv_b) SELECT sn, result, module_ocv_b FROM TModuleBms + + #region BUTTON EVENT + private void btnFindFile_Click(object sender, EventArgs e) + { + OpenFileDialog oDialog = new OpenFileDialog(); + oDialog.DefaultExt = "*.*"; + oDialog.Filter = "excel files 2003 (*.xls)|*.xls|excel files 2007 (*.xlsx)|*.xlsx|All files (*.*)|*.*"; + + if (oDialog.ShowDialog() == DialogResult.OK) + { + edFileName.Text = oDialog.FileName; + + try + { + dsCell = csExcelControl.OpenExcelDB(edFileName.Text); + + cbResultList.Properties.Items.Clear(); + for (int i = 0; i < dsCell.Tables.Count; i++) + { + cbResultList.Properties.Items.Add(dsCell.Tables[i].TableName); + } + cbResultList.SelectedIndex = 0; + + dtCell = dsCell.Tables[0]; + + gridCell.DataSource = dtCell; + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + + private void btnDbFileFind_Click(object sender, EventArgs e) + { + OpenFileDialog oDialog = new OpenFileDialog(); + oDialog.DefaultExt = "*.*"; + oDialog.Filter = "db files (*.db)|*.db|All files (*.*)|*.*"; + + if (oDialog.ShowDialog() == DialogResult.OK) + { + Forms.fmxWait WaitForm = new Forms.fmxWait(); + WaitForm.StartPosition = FormStartPosition.CenterScreen; + + edFileName.Text = oDialog.FileName; + + try + { + WaitForm.Show(); + + int count = 0; + DateTime bakTime = new DateTime(); + DataTable dtRD = new DataTable(); + DataTable dtWR = new DataTable(); + if (csDbUtils.DbQuaryExcuteToDataTable(edFileName.Text, "select * from TModuleValue", ref dtRD) > 0) + { + string dbfilepath = Path.GetDirectoryName(edFileName.Text); + string dbfilename_new = dbfilepath + @"\" + Path.GetFileNameWithoutExtension(edFileName.Text) + @"_new.db"; + csDbUtils.CreateLogDbFile(dbfilename_new); + + foreach (DataRow aRow in dtRD.Rows) + { + DateTime bTime = Convert.ToDateTime(String.Format("{0:yyyy/MM/dd HH:mm:ss}", aRow["create_date"])); + if (bakTime != bTime) + { + csDbUtils.DbInsertDataToDbFile(dbfilename_new, aRow); + bakTime = bTime; + } + //aRow["create_date"] = String.Format("{0:yyyy/MM/dd HH:mm:ss}", aRow["create_date"]); + + WaitForm.SetDescription(String.Format("{0}//{1}", count, dtRD.Rows.Count)); + Application.DoEvents(); + count++; + } + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + finally + { + if (WaitForm != null) + WaitForm.Close(); + } + } + } + + private void btnExcuteTCell_Click(object sender, EventArgs e) + { + if (tbSchema.Text != string.Empty) + { + try + { + //string path = cbLotNo.Text.Substring(0, 9); + //string path = cbLotNo.Text; + string path = dbFiles[cbLotNo.SelectedIndex]; + DataTable aaa = csDbUtils.DbSqlExcuteA3(path, tbSchema.Text); + if (aaa != null) + { + gridCell.DataSource = aaa; + edResultCount.Text = String.Format("{0}", aaa.Rows.Count); + + if (aaa.Rows.Count > 0) + { + var ddd = aaa.Rows[0]["module_sn"]; + byte[] ccc = Encoding.UTF8.GetBytes(ddd.ToString()); + } + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + } + } + + private void btnOpenSchema_Click(object sender, EventArgs e) + { + OpenFileDialog oDialog = new OpenFileDialog(); + oDialog.DefaultExt = "*.*"; + oDialog.Filter = "sql files (*.sql)|*.sql|All files (*.*)|*.*"; + + if (oDialog.ShowDialog() == DialogResult.OK) + { + string text = System.IO.File.ReadAllText(oDialog.FileName); + tbSchema.Text = text; + } + } + + private void btnQueryExcute_Click(object sender, EventArgs e) + { + if (tbSchema.Text != string.Empty) + { + gridCell.DataSource = csDbUtils.DbSqlExcuteA(Application.ExecutablePath, tbSchema.Text, "mBMS_16S"); + } + } + + private void btnInsertDbByTable_Click(object sender, EventArgs e) + { + } + + private void btnCheckGroupData_Click(object sender, EventArgs e) + { + tbSchema.Text = "select * from TInventoryData"; + } + + private void btnCreateNewDb_Click(object sender, EventArgs e) + { + string ModelName; + + ModelName = csConstData.MODEL_STR[Config.UartModelIndex]; + + csDbUtils.LogDbCreateNew(ModelName); + } + + private void btnCheckMeasData_Click(object sender, EventArgs e) + { + tbSchema.Text = "delete from TInventoryData where pcb_sn=''"; + } + private void btnOutputAll_Click(object sender, EventArgs e) + { + if (cbResultList.Properties.Items.Count > 0) + { + for (int i = 0; i < cbResultList.Properties.Items.Count; i++) + { + string sn = cbResultList.Properties.Items[i].ToString(); + MakeOutpuDataExcel(sn, cbLotNo.Text); + } + } + } + private void btnModuleResult_Click(object sender, EventArgs e) + { + // + try + { + string dbFilePath = dbFiles[cbLotNo.SelectedIndex]; + string sql = String.Format("SELECT * FROM TInventoryData") + + String.Format(" where pcb_sn like '{0}%'", tbPcbSn.Text) + ; + DataTable dtBmsData = csDbUtils.DbSqlExcuteA3(dbFilePath, sql); + dtBmsData.TableName = "TInventoryData"; + + if ((dtBmsData != null) && (dtBmsData.Rows.Count > 0)) + { + cbResultList.Properties.Items.Clear(); + + for (int i = 0; i < dtBmsData.Rows.Count; i++) + { + cbResultList.Properties.Items.Add(String.Format("{0}", dtBmsData.Rows[i]["pcb_sn"])); + } + gridCell.DataSource = dtBmsData; + edResultCount.Text = dtBmsData.Rows.Count.ToString(); + cbResultList.SelectedIndex = 0; + } + else + { + MessageBox.Show(String.Format("No TModuleResult data - {0}", dbFilePath)); + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + } + private void btnResultListClear_Click(object sender, EventArgs e) + { + cbResultList.Properties.Items.Clear(); + } + + private void btnBmsBmsDataMerse_Click(object sender, EventArgs e) + { + } + + private void btnOpenDbFolder_Click(object sender, EventArgs e) + { + System.Diagnostics.Process ps = new System.Diagnostics.Process(); + ps.StartInfo.FileName = "explorer.exe"; + ps.StartInfo.Arguments = csLog.GetDbFolder(Application.ExecutablePath); + ps.StartInfo.WorkingDirectory = csLog.GetDbFolder(Application.ExecutablePath); + ps.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal; + + ps.Start(); + } + #endregion + + #region COMPONENT EVETNT + private void cbResultList_SelectedIndexChanged(object sender, EventArgs e) + { + string tbName = ""; + tbName = cbResultList.Text; + + if ((dtCell != null) && (dtCell.Rows.Count > 0)) + { + if (tbName != "") + { + int index = cbResultList.SelectedIndex; + dtCell = dsCell.Tables[index]; + gridCell.DataSource = dtCell; + } + } + } + #endregion + + #region MAKE OUTPUT FUNCTION + private void MakeOutpuDataExcel(string mSN, string dbFile) + { + DateTime aDate = DateTime.Now; + string filename = String.Format("{0}_PR_57150.xls", mSN); + string filepath = + Path.GetDirectoryName(Application.ExecutablePath) + + String.Format(@"\output\{0}\", csDbUtils.MakeLotNumber(mSN)) + + filename; + + DataTable dtModuleResult = new DataTable(); + DataTable dtCellResult = new DataTable(); + + string sql; + sql = String.Format("SELECT * FROM TModuleResult where m_sn = {0}", mSN); + dtModuleResult = csDbUtils.GetDataTableBySelectFromDbName(dbFile, sql, "TModuleResult", "mBMS-16S"); + dtModuleResult.TableName = "TModuleResult"; + dtModuleResult.AcceptChanges(); + + sql = String.Format("SELECT * FROM TCellResult where m_sn = {0}", mSN); + dtCellResult = csDbUtils.GetDataTableBySelectFromDbName(dbFile, sql, "TCellResult", "mBMS-16S"); + dtCellResult.TableName = "TCellResult"; + dtCellResult.AcceptChanges(); + + if (dtModuleResult.Rows.Count == 0) throw new Exception(String.Format("No ModuleResult data ({0})", mSN)); + if (dtCellResult.Rows.Count == 0) throw new Exception(String.Format("No CellResult data ({0})", mSN)); + + csExcelExport.ExportToExcel(dtModuleResult, filepath); + csExcelExport.ExportToExcel(dtCellResult, filepath, false); + } + + private DataTable GetModuleResultTable(string dbFileName) + { + DateTime aDate = DateTime.Now; + + DataTable dtModuleResult = new DataTable(); + + string sql; + sql = String.Format("SELECT * FROM TModuleResult"); + dtModuleResult = csDbUtils.GetDataTableBySelectFromDbName(dbFileName, sql, "TModuleResult", "mBMS-16S"); + dtModuleResult.TableName = "TModuleResult"; + dtModuleResult.AcceptChanges(); + + if (dtModuleResult.Rows.Count == 0) throw new Exception(String.Format("No ModuleResult data ({0})", dbFileName)); + + return dtModuleResult; + } + + #endregion + + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxExcelFile.resx b/LFP_Manager/Forms/fmxExcelFile.resx new file mode 100644 index 0000000..ed11552 --- /dev/null +++ b/LFP_Manager/Forms/fmxExcelFile.resx @@ -0,0 +1,4574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA + GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/ + ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7///////////////////// + ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff///////// + ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+ + /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7///// + ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc + x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7///////////////////////////// + ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt + e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP + SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7///////// + ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z + WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS + Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8 + +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+ + /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+ + /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO + SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz + 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o + 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9 + /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE + oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG + PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7///// + ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH + PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t + 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/ + ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/ + ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7///////////////////////////// + ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+ + /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ + TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7///////////////// + ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ + TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+ + /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7///// + ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP + SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7///////////////////////////////////////// + ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/ + ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/ + ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7///////////////////////////// + ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/ + ///+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////+/v7////////+/v3////////////////////////+/v3////////+/v7///////////////// + ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7///////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + /////////v7+/v7///////////////////////////////////////////////////////////////// + ///////////////////////////+/v7////////+/v7///////////////////////////////////// + ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7///////////////////// + ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7 + +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9 + /Pz+/v7///////////////////////////////////////////////////////////////////////// + ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM + RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7///////////////////////////////////// + ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL + QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+ + /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP + SgCOSQCPTAKFOwDVvaT////9/Pv+/v7///////////////////////////////////////////////// + ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8 + +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7///////// + /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO + SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF + OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+ + ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/ + //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7///////////////////////// + ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/ + mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79 + /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN + RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ + TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7///// + ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7///// + ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+ + /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ + TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP + SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH + PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/ + ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5 + 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+ + /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ + QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE + oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/ + ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7///////////////////////// + ///////////////////////////////////////////////////////+/v7+//////////////////// + ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+ + /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9 + /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP + SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL + RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7///////////////////////////////// + ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/ + ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7///////// + ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP + SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI + PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/ + ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x + glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7///////////////////////////// + ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM + RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+ + /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/ + ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP + SgCOSgGLRQGTURDz7ef+/v39/f3+/v7///////////////////////////////////////////////// + ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+ + /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7///////////// + ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN + RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9 + /fz9/f3+/v7+/v7///////////////////////////////////////////////////////////////// + ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO + SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7///////////////////////////////////////// + ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO + SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7///// + //////////////////////////////////////////////////////////////////////////////// + ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS + UA/y6+X+/v39/fz+/v7+/v7///////////////////////////////////////////////////////// + ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP + SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7///////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+ + /v7///////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO + SQCOSQGJQQDi0cD////9/Pv+/v7///////////////////////////////////////////////////// + ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J + QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39 + /fz+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz + hFazhFayhFazhVete1TWvqb////9/fz+/v7///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7///////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+ + /f3+/f3///////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v7+//////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////v7+ + /f39//////////////////////////////////////////////////////////////////////////// + ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39 + /fz8/v79/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA + nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1//// + x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV + i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC + jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC + hz8Ap3I//fz7/fz8/v79/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7 + /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8 + +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p + /v39/f38/v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+ + ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb + 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//7+/f39 + /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7//// + 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+ + /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA + j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB + j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB + i0UAlVYZ8+3m/f79/f38/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+//////////////// + /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39 + /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+ + sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+ + /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+//////// + /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+ + /f39/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO + /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39 + 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39 + /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+//////////////////////////// + /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+//// + /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A + kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + jkoCikIC4tHA/////Pv7/v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC + hz4A1r6m/////Pz7/v7+/v7+/////v7+//////////////////////////////////////////////// + /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+ + /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+//////////////////// + /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM + /////Pv6/v7+/v7+/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA + j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+//////////////////////////////////////// + /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+ + /v7+/v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+ + /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7 + /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq//// + /Pv6/v7+/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A + j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA + kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA + j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6 + /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+//////// + /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+ + /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA + xaJ//////Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU + /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA + j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+//////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+//////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+//////////// + 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+ + /////v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39 + /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/ + /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6 + ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+ + /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC + kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB + kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39//// + /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA + hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA + iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A + j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU + z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+//////// + /v7+/////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7//v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn + +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3 + +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8 + /fz8/v7+/////v7+/////v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v///v7+/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT + z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7 + ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A + hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A + fS0AtIdb/f38/Pz8///+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D + kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL + jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+//////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA + jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3 + iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA + jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA + jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK + 6t7S/v7+/fz8/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+//////////////////////// + /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs//// + /Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7 + /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38 + /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fz8 + /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+//////////////////////////////////// + /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+ + /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA + jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A + pnA8/Pv6/fz7/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq + iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+ + /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+//////////// + /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+ + //7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A + 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES + jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+//////////////// + /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6 + /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7 + /v79/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v39 + /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8 + +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+ + /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ + hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ + 8+3m/f39/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+ + /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA + jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA + u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA + j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA + jkkCikQE49PC/v7//fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8 + /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+ + /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7//// + t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA + jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU + hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD + /////fz8//7//v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA + oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC + hj0Az7SX/////fz7//7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//7+ + /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH + jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA + jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT//// + /Pz8/v7//v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA + t4tf/////fz7/v7+/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs + mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6 + /v7+/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v7+ + /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx + +/n3/fz8/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+ + rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA + jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW + k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV + kU8TmVoj8ejg/v39/fz7/v7//f39/v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off + 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v////7+/v7+/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v39/v7+ + ///+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v////// + /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v79/////////v7+/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v79/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////9/Lt9/Pu + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2svnmMrzrGR/////fz7//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ + /v39/fz8/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h + /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0//// + 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC + j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + jUgBlFIO7uTa/////f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB + jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7 + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+ + /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38//////////////////// + /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z + iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+ + sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG//// + /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + hz4Ar35J/v39/fz8/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+//////// + /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38//////////////////////////////// + /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+//////////////////////////////////////////// + /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA + /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW + k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+ + /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+//////////////////// + /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iEAA176j/////fz7//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39//////////////////////////////////////////// + ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38 + /fz8/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEA1buf/////fz8/v7+/v7+//////////////////////////////////////////////////////// + /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+ + /////////////////////////////////////////////////////////////////////////////v7+ + /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+//////////// + /////////////////////////////////////////////////////////////////////fz7////yKaB + hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v///f38////sH9K + hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+//////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oBi0QAnmIj9vHs/v39/v39//////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA + nWAf9vHs/v7+/v79//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo//// + /fz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v///f38//// + 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8//////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/v79+/n3omor + ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm + +PTw/v39/f39//////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sBjEUAmVwb9e/p/v7+/f38//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A + vpVq/////fz7/v/+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8AyKaB/////fz7/v///v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39 + //7///////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC + jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsCiD8Auo9h/////fz8/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE + iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB + 4tC+/////f38/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjUcBk1EN7+Xb/////f39/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj + n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f38////u5Jlhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkBjUgE4M66/////fz7/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR + 7+bd/v7+/f39//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv + +/n4/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0 + rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6 + ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC + hz4AtolZ/////fz8/v3+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA + j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + j0sBikIApGww+vj1/v39/f39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ + j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M + /////Pz7/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkCjkkG4c+7/////fz7/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+///+/v39 + /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d//// + /fz7/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/f38/f38 + 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A + jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sBiD8AyKiE/////fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oBiUEApW4z+vj1/v39/v39//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ + /v7+/f38/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4 + 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD + 49PB/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/Pz7//// + 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6//// + /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A + j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC + iUEAqHQ7+/j2/fz8/v39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jUgBkk8K7ODV/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL//// + /f38/v7+///+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6//////// + ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A + ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38 + /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBiUEA1Lqd/////fv6//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38 + sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+//////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////v7+/v39 + /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq + 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38 + /v39/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjUgBkU4J6NrM/////fz8//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA + jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEArnxG/v7+/f38/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO + 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i//// + /Pz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA + hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39//////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr + vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g + 4M24/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY + llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+//////////////////////////// + /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsCiUEArXpD/v7//f39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB + ikMA1bqf/////fz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39 + /f38/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39 + /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/////////v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI + iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8//// + /fz8//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA + mVsZ8+zl/v38/fz8//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7 + /v7+//7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz7/v7+ + 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf + 9vHs/v79/fz8//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z + iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAi0YAl1gT8+3l/v7+/f39//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA + upFj/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC + hz4AwZty/////fz8/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////f39 + /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC + jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ + hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsChz4At4ta/////fz8/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjUgCkEwL6dzO/////fz7//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD + 38y3/////fz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v/+/f39/v79 + +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////fz8 + /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A + kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK + 5tbG/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBjUcB4M25/////f38/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos + +PTw/fz8/f39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA + kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB + iUAAq3dA/Pr4/fz7/f39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v///fz7 + ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA + j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0oBikMAomgq+vf0/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////Pz7////4M24 + i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiUEA0rea/////fz7/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7 + /v38/v39/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////f38/v79 + +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/f38 + ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + kEwChz4AxaJ8/////fz7/v7+//////////////////////////////////////////////////////// + ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA + 07mb/////Pz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU + /v7+/Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+//// + //////////////////////////////////////////////////////////////////////////////7/ + /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7///////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+//////////////////////////// + /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jEQAm10b9O/p/v7+/f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+//////////////////////////////////////// + /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7 + /v7//v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jUgAklAK6dzO/////f38/v////////////////////////////////////////////////////////// + /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6 + /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng + lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+ + /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiD8Au5Jl/////fz8/v7+//7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+//////////////////// + /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj + /v39/fz8/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+//////////////////////////// + /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8 + ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb//// + /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A + upFj/////fz8/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+ + /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7//////////////////////// + /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf + llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA + kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkBjUcA49LA/////f38/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79 + /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3 + qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8////0baX + iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD + /////fz8/v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA + nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA + qHI4/Pv5/v39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+ + iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + kEsChz8Az7KS/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7 + /v39/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v39 + /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////fz8////59jIj0oD + jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ + /////fz8//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB + llYW7+Xb/v7+/f38/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0wChz8AuIxc/v7+/fz7/v39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+ + /v39/v////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fv6 + ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAjkkBjEYA4M24/////fz8/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa + /////f38//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v39/fz7 + 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB + jUcE3sq2/////Pz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oBikMAomgq+fXy/v39/f39//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/fz7//// + 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq + +vf1/f38/f39//7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39 + tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS + yqqM38u2/////v79/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/v79//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v79/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxFwUpdate.Designer.cs b/LFP_Manager/Forms/fmxFwUpdate.Designer.cs new file mode 100644 index 0000000..9855b6d --- /dev/null +++ b/LFP_Manager/Forms/fmxFwUpdate.Designer.cs @@ -0,0 +1,643 @@ +namespace LFP_Manager +{ + partial class fmxFwUpdate + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxFwUpdate)); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.btnFlashWrite = new DevExpress.XtraEditors.SimpleButton(); + this.btnFlashErase = new DevExpress.XtraEditors.SimpleButton(); + this.btnGotoApp = new DevExpress.XtraEditors.SimpleButton(); + this.btnGotoBoot = new DevExpress.XtraEditors.SimpleButton(); + this.btnRestart = new DevExpress.XtraEditors.SimpleButton(); + this.lbUpdateStatus = new DevExpress.XtraEditors.LabelControl(); + this.lbUpdateProgress = new DevExpress.XtraEditors.LabelControl(); + this.pgUpdate = new DevExpress.XtraEditors.ProgressBarControl(); + this.lbUpdateTime = new DevExpress.XtraEditors.LabelControl(); + this.lbFileInfo = new DevExpress.XtraEditors.LabelControl(); + this.btnFwUpdate = new DevExpress.XtraEditors.SimpleButton(); + this.btnClose = new DevExpress.XtraEditors.SimpleButton(); + this.btnFind = new DevExpress.XtraEditors.SimpleButton(); + this.edFilename = new DevExpress.XtraEditors.TextEdit(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.emptySpaceItem4 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcItemGotoBoot = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem5 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.lcItemGotoApp = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem6 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.lcItemFlashErase = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcItemFlashWrite = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem(); + this.edTargetID = new DevExpress.XtraEditors.TextEdit(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pgUpdate.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.edFilename.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemGotoBoot)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemGotoApp)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemFlashErase)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemFlashWrite)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.edTargetID.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.edTargetID); + this.layoutControl1.Controls.Add(this.btnFlashWrite); + this.layoutControl1.Controls.Add(this.btnFlashErase); + this.layoutControl1.Controls.Add(this.btnGotoApp); + this.layoutControl1.Controls.Add(this.btnGotoBoot); + this.layoutControl1.Controls.Add(this.btnRestart); + this.layoutControl1.Controls.Add(this.lbUpdateStatus); + this.layoutControl1.Controls.Add(this.lbUpdateProgress); + this.layoutControl1.Controls.Add(this.pgUpdate); + this.layoutControl1.Controls.Add(this.lbUpdateTime); + this.layoutControl1.Controls.Add(this.lbFileInfo); + this.layoutControl1.Controls.Add(this.btnFwUpdate); + this.layoutControl1.Controls.Add(this.btnClose); + this.layoutControl1.Controls.Add(this.btnFind); + this.layoutControl1.Controls.Add(this.edFilename); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1101, 240, 600, 492); + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(736, 478); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // btnFlashWrite + // + this.btnFlashWrite.Location = new System.Drawing.Point(567, 153); + this.btnFlashWrite.Name = "btnFlashWrite"; + this.btnFlashWrite.Size = new System.Drawing.Size(162, 22); + this.btnFlashWrite.StyleController = this.layoutControl1; + this.btnFlashWrite.TabIndex = 21; + this.btnFlashWrite.Text = "Flash Write"; + this.btnFlashWrite.Click += new System.EventHandler(this.btnFlashWrite_Click); + // + // btnFlashErase + // + this.btnFlashErase.Location = new System.Drawing.Point(567, 127); + this.btnFlashErase.Name = "btnFlashErase"; + this.btnFlashErase.Size = new System.Drawing.Size(162, 22); + this.btnFlashErase.StyleController = this.layoutControl1; + this.btnFlashErase.TabIndex = 20; + this.btnFlashErase.Text = "Flash Erase"; + this.btnFlashErase.Click += new System.EventHandler(this.btnFlashErase_Click); + // + // btnGotoApp + // + this.btnGotoApp.Location = new System.Drawing.Point(567, 220); + this.btnGotoApp.Name = "btnGotoApp"; + this.btnGotoApp.Size = new System.Drawing.Size(162, 22); + this.btnGotoApp.StyleController = this.layoutControl1; + this.btnGotoApp.TabIndex = 19; + this.btnGotoApp.Text = "Goto Application"; + this.btnGotoApp.Click += new System.EventHandler(this.btnGotoApp_Click); + // + // btnGotoBoot + // + this.btnGotoBoot.Location = new System.Drawing.Point(567, 194); + this.btnGotoBoot.Name = "btnGotoBoot"; + this.btnGotoBoot.Size = new System.Drawing.Size(162, 22); + this.btnGotoBoot.StyleController = this.layoutControl1; + this.btnGotoBoot.TabIndex = 18; + this.btnGotoBoot.Text = "Goto Bootloader"; + this.btnGotoBoot.Click += new System.EventHandler(this.btnGotoBoot_Click); + // + // btnRestart + // + this.btnRestart.Location = new System.Drawing.Point(567, 273); + this.btnRestart.Name = "btnRestart"; + this.btnRestart.Size = new System.Drawing.Size(162, 29); + this.btnRestart.StyleController = this.layoutControl1; + this.btnRestart.TabIndex = 17; + this.btnRestart.Text = "Restart"; + // + // lbUpdateStatus + // + this.lbUpdateStatus.Location = new System.Drawing.Point(7, 335); + this.lbUpdateStatus.Name = "lbUpdateStatus"; + this.lbUpdateStatus.Size = new System.Drawing.Size(526, 14); + this.lbUpdateStatus.StyleController = this.layoutControl1; + this.lbUpdateStatus.TabIndex = 16; + this.lbUpdateStatus.Text = "Update Status : "; + // + // lbUpdateProgress + // + this.lbUpdateProgress.Appearance.Options.UseTextOptions = true; + this.lbUpdateProgress.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.lbUpdateProgress.Location = new System.Drawing.Point(537, 353); + this.lbUpdateProgress.Name = "lbUpdateProgress"; + this.lbUpdateProgress.Size = new System.Drawing.Size(192, 14); + this.lbUpdateProgress.StyleController = this.layoutControl1; + this.lbUpdateProgress.TabIndex = 15; + this.lbUpdateProgress.Text = "0/0 bytes"; + // + // pgUpdate + // + this.pgUpdate.Location = new System.Drawing.Point(7, 371); + this.pgUpdate.Name = "pgUpdate"; + this.pgUpdate.Size = new System.Drawing.Size(722, 39); + this.pgUpdate.StyleController = this.layoutControl1; + this.pgUpdate.TabIndex = 14; + // + // lbUpdateTime + // + this.lbUpdateTime.Location = new System.Drawing.Point(7, 353); + this.lbUpdateTime.Name = "lbUpdateTime"; + this.lbUpdateTime.Size = new System.Drawing.Size(526, 14); + this.lbUpdateTime.StyleController = this.layoutControl1; + this.lbUpdateTime.TabIndex = 13; + this.lbUpdateTime.Text = "00:00"; + // + // lbFileInfo + // + this.lbFileInfo.Appearance.Options.UseTextOptions = true; + this.lbFileInfo.Appearance.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Top; + this.lbFileInfo.Location = new System.Drawing.Point(7, 106); + this.lbFileInfo.Name = "lbFileInfo"; + this.lbFileInfo.Size = new System.Drawing.Size(556, 196); + this.lbFileInfo.StyleController = this.layoutControl1; + this.lbFileInfo.TabIndex = 12; + this.lbFileInfo.Text = "File Information"; + // + // btnFwUpdate + // + this.btnFwUpdate.Location = new System.Drawing.Point(567, 54); + this.btnFwUpdate.Name = "btnFwUpdate"; + this.btnFwUpdate.Size = new System.Drawing.Size(162, 22); + this.btnFwUpdate.StyleController = this.layoutControl1; + this.btnFwUpdate.TabIndex = 8; + this.btnFwUpdate.Text = "Firmware Update"; + this.btnFwUpdate.Click += new System.EventHandler(this.btnFwUpdate_Click); + // + // btnClose + // + this.btnClose.Location = new System.Drawing.Point(3, 418); + this.btnClose.Name = "btnClose"; + this.btnClose.Size = new System.Drawing.Size(730, 57); + this.btnClose.StyleController = this.layoutControl1; + this.btnClose.TabIndex = 6; + this.btnClose.Text = "CLOSE"; + this.btnClose.Click += new System.EventHandler(this.btnClose_Click); + // + // btnFind + // + this.btnFind.Location = new System.Drawing.Point(567, 28); + this.btnFind.Name = "btnFind"; + this.btnFind.Size = new System.Drawing.Size(162, 22); + this.btnFind.StyleController = this.layoutControl1; + this.btnFind.TabIndex = 5; + this.btnFind.Text = "Find File..."; + this.btnFind.Click += new System.EventHandler(this.btnFind_Click); + // + // edFilename + // + this.edFilename.Location = new System.Drawing.Point(87, 28); + this.edFilename.Name = "edFilename"; + this.edFilename.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F); + this.edFilename.Properties.Appearance.Options.UseFont = true; + this.edFilename.Size = new System.Drawing.Size(476, 22); + this.edFilename.StyleController = this.layoutControl1; + this.edFilename.TabIndex = 4; + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem3, + this.layoutControlGroup2, + this.layoutControlGroup3}); + this.layoutControlGroup1.Name = "Root"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup1.Size = new System.Drawing.Size(736, 478); + this.layoutControlGroup1.TextVisible = false; + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.btnClose; + this.layoutControlItem3.CustomizationFormText = "layoutControlItem3"; + this.layoutControlItem3.Location = new System.Drawing.Point(0, 415); + this.layoutControlItem3.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(734, 61); + this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextVisible = false; + // + // layoutControlGroup2 + // + this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem4, + this.layoutControlItem8, + this.emptySpaceItem1, + this.emptySpaceItem4, + this.layoutControlItem5, + this.emptySpaceItem3, + this.layoutControlItem2, + this.layoutControlItem1, + this.lcItemGotoBoot, + this.emptySpaceItem5, + this.lcItemGotoApp, + this.emptySpaceItem6, + this.lcItemFlashErase, + this.lcItemFlashWrite, + this.layoutControlItem6}); + this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup2.Name = "layoutControlGroup2"; + this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup2.Size = new System.Drawing.Size(734, 307); + this.layoutControlGroup2.Text = "Update Command"; + // + // layoutControlItem4 + // + this.layoutControlItem4.Control = this.btnRestart; + this.layoutControlItem4.CustomizationFormText = "layoutControlItem4"; + this.layoutControlItem4.Location = new System.Drawing.Point(560, 245); + this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 33); + this.layoutControlItem4.MinSize = new System.Drawing.Size(93, 33); + this.layoutControlItem4.Name = "layoutControlItem4"; + this.layoutControlItem4.Size = new System.Drawing.Size(166, 33); + this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem4.TextVisible = false; + // + // layoutControlItem8 + // + this.layoutControlItem8.Control = this.lbFileInfo; + this.layoutControlItem8.CustomizationFormText = "layoutControlItem8"; + this.layoutControlItem8.Location = new System.Drawing.Point(0, 78); + this.layoutControlItem8.MinSize = new System.Drawing.Size(74, 18); + this.layoutControlItem8.Name = "layoutControlItem8"; + this.layoutControlItem8.Size = new System.Drawing.Size(560, 200); + this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem8.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1"; + this.emptySpaceItem1.Location = new System.Drawing.Point(560, 218); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(166, 27); + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // emptySpaceItem4 + // + this.emptySpaceItem4.AllowHotTrack = false; + this.emptySpaceItem4.CustomizationFormText = "emptySpaceItem4"; + this.emptySpaceItem4.Location = new System.Drawing.Point(0, 52); + this.emptySpaceItem4.Name = "emptySpaceItem4"; + this.emptySpaceItem4.Size = new System.Drawing.Size(560, 26); + this.emptySpaceItem4.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem5 + // + this.layoutControlItem5.Control = this.btnFwUpdate; + this.layoutControlItem5.CustomizationFormText = "layoutControlItem5"; + this.layoutControlItem5.Location = new System.Drawing.Point(560, 26); + this.layoutControlItem5.MinSize = new System.Drawing.Size(108, 26); + this.layoutControlItem5.Name = "layoutControlItem5"; + this.layoutControlItem5.Size = new System.Drawing.Size(166, 26); + this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem5.TextVisible = false; + // + // emptySpaceItem3 + // + this.emptySpaceItem3.AllowHotTrack = false; + this.emptySpaceItem3.CustomizationFormText = "emptySpaceItem3"; + this.emptySpaceItem3.Location = new System.Drawing.Point(0, 26); + this.emptySpaceItem3.Name = "emptySpaceItem3"; + this.emptySpaceItem3.Size = new System.Drawing.Size(405, 26); + this.emptySpaceItem3.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.btnFind; + this.layoutControlItem2.CustomizationFormText = "layoutControlItem2"; + this.layoutControlItem2.Location = new System.Drawing.Point(560, 0); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(166, 26); + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.edFilename; + this.layoutControlItem1.CustomizationFormText = "layoutControlItem1"; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(560, 26); + this.layoutControlItem1.Text = "File Name : "; + this.layoutControlItem1.TextSize = new System.Drawing.Size(68, 14); + // + // lcItemGotoBoot + // + this.lcItemGotoBoot.Control = this.btnGotoBoot; + this.lcItemGotoBoot.Location = new System.Drawing.Point(560, 166); + this.lcItemGotoBoot.MinSize = new System.Drawing.Size(89, 26); + this.lcItemGotoBoot.Name = "lcItemGotoBoot"; + this.lcItemGotoBoot.Size = new System.Drawing.Size(166, 26); + this.lcItemGotoBoot.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcItemGotoBoot.TextSize = new System.Drawing.Size(0, 0); + this.lcItemGotoBoot.TextVisible = false; + // + // emptySpaceItem5 + // + this.emptySpaceItem5.AllowHotTrack = false; + this.emptySpaceItem5.Location = new System.Drawing.Point(560, 52); + this.emptySpaceItem5.MinSize = new System.Drawing.Size(166, 24); + this.emptySpaceItem5.Name = "emptySpaceItem5"; + this.emptySpaceItem5.Size = new System.Drawing.Size(166, 47); + this.emptySpaceItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem5.TextSize = new System.Drawing.Size(0, 0); + // + // lcItemGotoApp + // + this.lcItemGotoApp.Control = this.btnGotoApp; + this.lcItemGotoApp.Location = new System.Drawing.Point(560, 192); + this.lcItemGotoApp.MinSize = new System.Drawing.Size(89, 26); + this.lcItemGotoApp.Name = "lcItemGotoApp"; + this.lcItemGotoApp.Size = new System.Drawing.Size(166, 26); + this.lcItemGotoApp.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcItemGotoApp.TextSize = new System.Drawing.Size(0, 0); + this.lcItemGotoApp.TextVisible = false; + this.lcItemGotoApp.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; + // + // emptySpaceItem6 + // + this.emptySpaceItem6.AllowHotTrack = false; + this.emptySpaceItem6.Location = new System.Drawing.Point(560, 151); + this.emptySpaceItem6.Name = "emptySpaceItem6"; + this.emptySpaceItem6.Size = new System.Drawing.Size(166, 15); + this.emptySpaceItem6.TextSize = new System.Drawing.Size(0, 0); + // + // lcItemFlashErase + // + this.lcItemFlashErase.Control = this.btnFlashErase; + this.lcItemFlashErase.Location = new System.Drawing.Point(560, 99); + this.lcItemFlashErase.MinSize = new System.Drawing.Size(101, 26); + this.lcItemFlashErase.Name = "lcItemFlashErase"; + this.lcItemFlashErase.Size = new System.Drawing.Size(166, 26); + this.lcItemFlashErase.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcItemFlashErase.TextSize = new System.Drawing.Size(0, 0); + this.lcItemFlashErase.TextVisible = false; + // + // lcItemFlashWrite + // + this.lcItemFlashWrite.Control = this.btnFlashWrite; + this.lcItemFlashWrite.Location = new System.Drawing.Point(560, 125); + this.lcItemFlashWrite.MinSize = new System.Drawing.Size(101, 26); + this.lcItemFlashWrite.Name = "lcItemFlashWrite"; + this.lcItemFlashWrite.Size = new System.Drawing.Size(166, 26); + this.lcItemFlashWrite.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcItemFlashWrite.TextSize = new System.Drawing.Size(0, 0); + this.lcItemFlashWrite.TextVisible = false; + // + // layoutControlGroup3 + // + this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem12, + this.emptySpaceItem2, + this.layoutControlItem9, + this.layoutControlItem11, + this.layoutControlItem10}); + this.layoutControlGroup3.Location = new System.Drawing.Point(0, 307); + this.layoutControlGroup3.Name = "layoutControlGroup3"; + this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup3.Size = new System.Drawing.Size(734, 108); + this.layoutControlGroup3.Text = "Update Status"; + // + // layoutControlItem12 + // + this.layoutControlItem12.Control = this.lbUpdateStatus; + this.layoutControlItem12.CustomizationFormText = "layoutControlItem12"; + this.layoutControlItem12.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem12.MinSize = new System.Drawing.Size(74, 18); + this.layoutControlItem12.Name = "layoutControlItem12"; + this.layoutControlItem12.Size = new System.Drawing.Size(530, 18); + this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem12.TextVisible = false; + // + // emptySpaceItem2 + // + this.emptySpaceItem2.AllowHotTrack = false; + this.emptySpaceItem2.CustomizationFormText = "emptySpaceItem2"; + this.emptySpaceItem2.Location = new System.Drawing.Point(530, 0); + this.emptySpaceItem2.Name = "emptySpaceItem2"; + this.emptySpaceItem2.Size = new System.Drawing.Size(196, 18); + this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem9 + // + this.layoutControlItem9.Control = this.lbUpdateTime; + this.layoutControlItem9.CustomizationFormText = "layoutControlItem9"; + this.layoutControlItem9.Location = new System.Drawing.Point(0, 18); + this.layoutControlItem9.MinSize = new System.Drawing.Size(74, 18); + this.layoutControlItem9.Name = "layoutControlItem9"; + this.layoutControlItem9.Size = new System.Drawing.Size(530, 18); + this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem9.TextVisible = false; + // + // layoutControlItem11 + // + this.layoutControlItem11.Control = this.lbUpdateProgress; + this.layoutControlItem11.CustomizationFormText = "layoutControlItem11"; + this.layoutControlItem11.Location = new System.Drawing.Point(530, 18); + this.layoutControlItem11.MinSize = new System.Drawing.Size(74, 18); + this.layoutControlItem11.Name = "layoutControlItem11"; + this.layoutControlItem11.Size = new System.Drawing.Size(196, 18); + this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem11.TextVisible = false; + // + // layoutControlItem10 + // + this.layoutControlItem10.Control = this.pgUpdate; + this.layoutControlItem10.CustomizationFormText = "layoutControlItem10"; + this.layoutControlItem10.Location = new System.Drawing.Point(0, 36); + this.layoutControlItem10.MinSize = new System.Drawing.Size(54, 16); + this.layoutControlItem10.Name = "layoutControlItem10"; + this.layoutControlItem10.Size = new System.Drawing.Size(726, 43); + this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem10.TextVisible = false; + // + // edTargetID + // + this.edTargetID.Location = new System.Drawing.Point(492, 54); + this.edTargetID.Name = "edTargetID"; + this.edTargetID.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F); + this.edTargetID.Properties.Appearance.Options.UseFont = true; + this.edTargetID.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.edTargetID.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.edTargetID.Size = new System.Drawing.Size(71, 22); + this.edTargetID.StyleController = this.layoutControl1; + this.edTargetID.TabIndex = 22; + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.edTargetID; + this.layoutControlItem6.Location = new System.Drawing.Point(405, 26); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(155, 26); + this.layoutControlItem6.Text = "Target ID"; + this.layoutControlItem6.TextSize = new System.Drawing.Size(68, 14); + // + // fmxFwUpdate + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(736, 478); + this.Controls.Add(this.layoutControl1); + this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxFwUpdate.IconOptions.Icon"))); + this.Name = "fmxFwUpdate"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fmFwUpdate"; + this.Activated += new System.EventHandler(this.fmxFwUpdate_Activated); + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.fmxFwUpdate_FormClosed); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pgUpdate.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.edFilename.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemGotoBoot)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemGotoApp)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemFlashErase)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcItemFlashWrite)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.edTargetID.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraEditors.SimpleButton btnFind; + private DevExpress.XtraEditors.TextEdit edFilename; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private DevExpress.XtraEditors.SimpleButton btnClose; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraEditors.SimpleButton btnFwUpdate; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem4; + private DevExpress.XtraEditors.LabelControl lbFileInfo; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2; + private DevExpress.XtraEditors.LabelControl lbUpdateTime; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9; + private DevExpress.XtraEditors.ProgressBarControl pgUpdate; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10; + private DevExpress.XtraEditors.LabelControl lbUpdateProgress; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11; + private DevExpress.XtraEditors.LabelControl lbUpdateStatus; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12; + private DevExpress.XtraEditors.SimpleButton btnRestart; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3; + private DevExpress.XtraEditors.SimpleButton btnGotoApp; + private DevExpress.XtraEditors.SimpleButton btnGotoBoot; + private DevExpress.XtraLayout.LayoutControlItem lcItemGotoBoot; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem5; + private DevExpress.XtraLayout.LayoutControlItem lcItemGotoApp; + private DevExpress.XtraEditors.SimpleButton btnFlashWrite; + private DevExpress.XtraEditors.SimpleButton btnFlashErase; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem6; + private DevExpress.XtraLayout.LayoutControlItem lcItemFlashErase; + private DevExpress.XtraLayout.LayoutControlItem lcItemFlashWrite; + private DevExpress.XtraEditors.TextEdit edTargetID; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxFwUpdate.cs b/LFP_Manager/Forms/fmxFwUpdate.cs new file mode 100644 index 0000000..662796f --- /dev/null +++ b/LFP_Manager/Forms/fmxFwUpdate.cs @@ -0,0 +1,496 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Linq; +using System.Windows.Forms; +using DevExpress.XtraEditors; +using System.IO; +using System.Runtime.InteropServices; + +using System.Threading; + +using LFP_Manager.Function; +using LFP_Manager.Utils; + +namespace LFP_Manager +{ + public delegate void AutoTxSetEnvent(bool autoTx); + public delegate void SendDataUartEvent(ushort dev_addr, byte[] data, bool ReplyFlag, int type); + + public partial class fmxFwUpdate : XtraForm + { + #region DEFINES + + const int FW_UPDATE_START_ADDR = 0x08080000; + const int FW_UPDATE_END_ADDR = 0x080E0000 - 1; + const int FW_UPDATE_SECTOR_SIZE = 0x20000; + const int FW_UPDATE_PACKET_SIZE = 0x800; + + const int APP_TO_BOOT = 0; + const int BOOT_TO_APP = 1; + + #endregion + + #region VARIABLES + + private UInt32 SystemId = 0; + private byte[] fwdata; + private int fwsize; + private int FwStartAddr = 0; + private int FwCurrPosition = 0; + private int FwSentLength = 0; + + private bool StopUpdate = true; + + private DateTime UpdateStartTime; + private TimeSpan UpdateTime; + + public event AutoTxSetEnvent OnAutoTxSet = null; + public event SendDataUartEvent OnSendUartData = null; + + #endregion + + #region CONSTRUCTORS + + public fmxFwUpdate(int sID) + { + InitializeComponent(); + + SystemId = (UInt32)sID; + edTargetID.Text = sID.ToString(); + + fwdata = null; + fwsize = 0; + btnFwUpdate.Enabled = false; + + lcItemFlashErase.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; + lcItemFlashWrite.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; + lcItemGotoBoot.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; + lcItemGotoApp.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; + } + + #endregion + + #region BUTTON EVENTS + + private void btnClose_Click(object sender, EventArgs e) + { + Close(); + } + + private void btnFwUpdate_Click(object sender, EventArgs e) + { + if (edTargetID.Text == "") + { + MessageBox.Show("Please check target id !!"); + return; + } + + SystemId = Convert.ToUInt32(edTargetID.Text); + + if (StopUpdate == true) + { + // Working mode change (Application --> Boot) - It need to be wait more than 1.5sec + OnAutoTxSet?.Invoke(false); + + DisplayLabelUpdate("Goto Bootloader Mode"); + RequestModeChange(APP_TO_BOOT); + UpdateStartTime = DateTime.Now; + + btnFwUpdate.Text = "Cancel Update"; + btnFwUpdate.Enabled = false; + + for (int i = 0; i < 2000; i += 100) + { + Thread.Sleep(100); + Application.DoEvents(); + } + + btnFwUpdate.Enabled = true; + // Flash Erase + RequestFlashErase(); + } + else + { + StopFwUpdate(); + } + } + + private void StopFwUpdate() + { + StopUpdate = true; + btnFwUpdate.Text = "Firmware Update"; + pgUpdate.Position = 0; + //pgUpdate.Properties.Maximum = 0; + //lbUpdateProgress.Text = "-/-"; + lbUpdateStatus.Text = "Stop Update"; + } + + public static byte[] ToByteArray(String HexString) + { + int NumberChars = HexString.Length; + byte[] bytes = new byte[NumberChars / 2]; + for (int i = 0; i < NumberChars; i += 2) + { + bytes[i / 2] = Convert.ToByte(HexString.Substring(i, 2), 16); + } + return bytes; + } + private void btnFind_Click(object sender, EventArgs e) + { + OpenFileDialog oDialog; + + oDialog = new OpenFileDialog(); + oDialog.DefaultExt = "*.*"; + oDialog.Filter = "hex files (*.hex)|*.hex|All files (*.*)|*.*"; + + if (oDialog.ShowDialog() == DialogResult.OK) + { + edFilename.Text = oDialog.FileName; + + int addr1 = 0; + int addr2 = 0; + string[] aline = File.ReadLines(edFilename.Text).ToArray(); + for (int i = 0; i < aline.Length; i++) + { + byte[] a = ToByteArray(aline[i].Substring(1, aline[i].Length - 1)); + switch (a[3]) + { + case 0: // data record + addr2 = (int)((a[1] << 8) | a[2]) + a[0]; + if (FwStartAddr == 0) + FwStartAddr = (int)((a[1] << 8) | a[2]); + break; + case 1: // End of file record. Usually, it is 00000001FF + + break; + case 2: // Extended Segment address record. This indicates segment base address when 16 bits is not enough for addressing memory; + break; + case 3: // Start segment address record. Indicates initial segment base address. + break; + case 4: // Extended Linear Address Record – allows 32 bit addressing. + addr1 = (int)((a[4] << 8) | a[5]); + break; + case 5: // Start Linear Address Record. + break; + } + } + int FwImageSize = (int)((addr1 << 16) + addr2 - FwStartAddr); + if ((FwImageSize % 128) > 0) + { + FwImageSize = ((FwImageSize / 128) + 1) * 128; + } + else + { + FwImageSize = ((FwImageSize / 128) + 0) * 128; + } + addr1 = 0; + addr2 = 0; + fwsize = FwImageSize; + fwdata = new byte[fwsize]; + for (int i = 0; i < fwdata.Length; i++) + { + fwdata[i] = 0xFF; + } + for (int i = 0; i < aline.Length; i++) + { + byte[] a = ToByteArray(aline[i].Substring(1, aline[i].Length - 1)); + switch (a[3]) + { + case 0: // data record + addr2 = (int)((a[1] << 8) | a[2]); + int len = a[0]; + for (int j = 0; j < len; j++) + { + fwdata[((addr1 << 16) + addr2) - FwStartAddr + j] = a[4 + j]; + } + break; + case 1: // End of file record. Usually, it is 00000001FF + + break; + case 2: // Extended Segment address record. This indicates segment base address when 16 bits is not enough for addressing memory; + break; + case 3: // Start segment address record. Indicates initial segment base address. + break; + case 4: // Extended Linear Address Record – allows 32 bit addressing. + addr1 = (int)((a[4] << 8) | a[5]); + break; + case 5: // Start Linear Address Record. + break; + } + } + + string strName = Path.GetFileName(edFilename.Text); + + lbFileInfo.Text = string.Format("File Information"); + lbFileInfo.Text += string.Format("\r\n - Filename: {0}", strName); + lbFileInfo.Text += string.Format("\r\n - File Version: {0}", strName.Substring(0, 12)); + lbFileInfo.Text += string.Format("\r\n - File Size: {0:#,##0} bytes", fwsize); + lbFileInfo.Text += string.Format("\r\n - Packet Size: {0:#,##0} packets", fwsize / 128); + lbFileInfo.Text += string.Format("\r\n - Last packet: {0:#,##0}", fwsize % 128); + lbFileInfo.Text += string.Format("\r\n - Start Addr : 0x{0:X8}", FwStartAddr); + + lbUpdateProgress.Text = string.Format("{0:#,##0}/{1:#,##0} bytes", 0, fwsize); + pgUpdate.Properties.Maximum = (int)fwsize; + + btnFwUpdate.Enabled = true; + } + } + + #endregion + + #region FORM EVENT + + private void fmxFwUpdate_Activated(object sender, EventArgs e) + { + //OnAutoTxSet?.Invoke(false); + } + + private void fmxFwUpdate_FormClosed(object sender, FormClosedEventArgs e) + { + OnAutoTxSet?.Invoke(true); + } + + #endregion + + #region PUBLIC FUNCTION + + void DisplayLabelUpdate(string msg) + { + if (this.InvokeRequired) + { + this.Invoke(new MethodInvoker(delegate () + { + lbUpdateStatus.Text = string.Format("Update Status : {0}", msg); + })); + } + else + { + lbUpdateStatus.Text = string.Format("Update Status : {0}", msg); + } + } + void DisplayUpdateProgress() + { + if (this.InvokeRequired) + { + _ = this.Invoke(new MethodInvoker(delegate () + { + lbUpdateProgress.Text = string.Format("{0:#,##0}/{1:#,##0} bytes", FwCurrPosition, fwsize); + pgUpdate.Position = FwCurrPosition; + UpdateTime = DateTime.Now - UpdateStartTime; + lbUpdateTime.Text = string.Format("{0:mm}:{0:ss}", UpdateTime); + })); + } + else + { + lbUpdateProgress.Text = string.Format("{0:#,##0}/{1:#,##0} bytes", FwCurrPosition, fwsize); + pgUpdate.Position = FwCurrPosition; + UpdateTime = DateTime.Now - UpdateStartTime; + lbUpdateTime.Text = string.Format("{0:mm}:{0:ss}", UpdateTime); + } + } + + public void RecvData(byte[] rdata) + { + //lbUpdateStatus.Text = String.Format("Recv Data: 0x{0:X8} {1:X2} {2:X2} {3:X2} {4:X2} {5:X2} {6:X2} {7:X2} {8:X2}" + // , rhdr, rdata[0], rdata[1], rdata[2], rdata[3], rdata[4], rdata[5], rdata[6], rdata[7]); + + if (StopUpdate == false) + { + if (rdata[0] == 0x7F) + { + switch (rdata[1]) + { + case 0x43: // Erase Flash + if (rdata[2] == 0x79) + { + // Erase Success + DisplayLabelUpdate("Flash Erase Success"); + byte[] sdata = new byte[128]; + FwCurrPosition = 0; + for (int i = 0; i < sdata.Length; i++) + { + sdata[i] = fwdata[FwCurrPosition + i]; + } + RequestFlashWrite(FwStartAddr + FwCurrPosition, sdata); + } + else if (rdata[2] == 0x1F) + { + // Erase Fail + DisplayLabelUpdate("Flash Erase Fail"); + StopUpdate = true; + } + break; + case 0x31: // Write Flash + if (rdata[2] == 0x79) + { + // Write Success + string str = string.Format("Flash Write Success - {0}/{1}", FwCurrPosition, FwSentLength); + DisplayLabelUpdate(str); + DisplayUpdateProgress(); + + FwCurrPosition += FwSentLength; + + int Remain = fwdata.Length - FwCurrPosition; + if (Remain > 0) + { + int len = (Remain > 128) ? 128 : Remain; + byte[] sdata = new byte[len]; + for (int i = 0; i < sdata.Length; i++) + { + sdata[i] = fwdata[FwCurrPosition + i]; + } + RequestFlashWrite(FwStartAddr + FwCurrPosition, sdata); + } + else + { + RequestModeChange(BOOT_TO_APP); + // Write Success + str = string.Format("Complete Update - {0}/{1}", FwCurrPosition, FwSentLength); + DisplayLabelUpdate(str); + DisplayUpdateProgress(); + //MessageBox.Show("Complete Firmware Update", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + else if (rdata[2] == 0x1F) + { + // Write Fail + DisplayLabelUpdate("Flash Write Fail"); + StopUpdate = true; + } + break; + } + } + } + } + + #endregion + + #region UART PACKET FUNCTION + private void RequestModeChange(int mode) + { + byte[] sdata = null; + byte[] crc; + + if (mode == 0) + { + // Normal mode --> Bootloader mode + sdata = new byte[8]; + sdata[0] = (byte)SystemId; // Dev Address + sdata[1] = 0x50; // Function Code + sdata[2] = 0x80; // Address H + sdata[3] = 0x00; // Address L + sdata[4] = 0x00; // Number of Register H + sdata[5] = 0x00; // Number of Register L + + crc = csSerialCommFunction.GetCRC(sdata, 6); + + sdata[6] = crc[1]; // CRCH + sdata[7] = crc[0]; // CRCL + + StopUpdate = false; + } + else if (mode == 1) + { + // Bootloader mode --> Normal mode + sdata = new byte[5]; + sdata[0] = 0x7F; // Dev Address + sdata[1] = 0x21; // Function Code,,+ + sdata[2] = 0xDE; // Sub Code + + crc = csSerialCommFunction.GetCRC(sdata, 3); + + sdata[3] = crc[1]; // CRCH + sdata[4] = crc[0]; // CRCL + + StopFwUpdate(); + } + OnSendUartData?.Invoke((ushort)SystemId, sdata, false, 0); + } + + private void RequestFlashErase() + { + byte[] sdata = null; + byte[] crc; + + // Flash Erase + sdata = new byte[5]; + sdata[0] = 0x7F; // Dev Address + sdata[1] = 0x43; // Function Code + sdata[2] = 0xBC; // Sub Code + + crc = csSerialCommFunction.GetCRC(sdata, 3); + + sdata[3] = crc[1]; // CRCH + sdata[4] = crc[0]; // CRCL + + OnSendUartData?.Invoke((ushort)SystemId, sdata, true, 0); + } + private void RequestFlashWrite(int addr, byte[] data) + { + byte[] sdata = null; + byte[] crc; + + // Flash Write + sdata = new byte[6 + 128 + 2]; + for (int i = 0; i < sdata.Length; i++) + { + sdata[i] = 0xFF; + } + sdata[0] = 0x7F; // Dev Address + sdata[1] = 0x31; // Function Code + sdata[2] = 0xCE; // Sub Code + sdata[3] = (byte)(addr >> 16); // Addr H + sdata[4] = (byte)(addr >> 8); // Addr L MSB + sdata[5] = (byte)(addr & 0xff); // Addr L LSB + + for (int i = 0; i < data.Length; i++) + { + sdata[6 + i] = data[i]; + } + + crc = csSerialCommFunction.GetCRC(sdata, sdata.Length - 2); + + sdata[sdata.Length - 2] = crc[1]; // CRCH + sdata[sdata.Length - 1] = crc[0]; // CRCL + + FwSentLength = data.Length; + OnSendUartData?.Invoke((ushort)SystemId, sdata, false, 0); + } + #endregion + + #region BUTTON EVENT + private void btnGotoBoot_Click(object sender, EventArgs e) + { + OnAutoTxSet?.Invoke(false); + + RequestModeChange(APP_TO_BOOT); + UpdateStartTime = DateTime.Now; + } + + private void btnGotoApp_Click(object sender, EventArgs e) + { + RequestModeChange(BOOT_TO_APP); + } + + private void btnFlashErase_Click(object sender, EventArgs e) + { + RequestFlashErase(); + } + + private void btnFlashWrite_Click(object sender, EventArgs e) + { + byte[] sdata = new byte[128]; + FwCurrPosition = 0; + for (int i = 0; i < sdata.Length; i++) + { + sdata[i] = fwdata[FwCurrPosition + i]; + } + RequestFlashWrite(FwStartAddr + FwCurrPosition, sdata); + } + #endregion + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxFwUpdate.resx b/LFP_Manager/Forms/fmxFwUpdate.resx new file mode 100644 index 0000000..2c2a4ce --- /dev/null +++ b/LFP_Manager/Forms/fmxFwUpdate.resx @@ -0,0 +1,4571 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA + GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/ + ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7///////////////////// + ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff///////// + ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+ + /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7///// + ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc + x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7///////////////////////////// + ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt + e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP + SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7///////// + ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z + WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS + Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8 + +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+ + /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+ + /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO + SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz + 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o + 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9 + /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE + oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG + PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7///// + ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH + PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t + 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/ + ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/ + ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7///////////////////////////// + ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+ + /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ + TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7///////////////// + ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ + TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+ + /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7///// + ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP + SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7///////////////////////////////////////// + ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/ + ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/ + ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7///////////////////////////// + ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/ + ///+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////+/v7////////+/v3////////////////////////+/v3////////+/v7///////////////// + ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7///////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + /////////v7+/v7///////////////////////////////////////////////////////////////// + ///////////////////////////+/v7////////+/v7///////////////////////////////////// + ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7///////////////////// + ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7 + +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9 + /Pz+/v7///////////////////////////////////////////////////////////////////////// + ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM + RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7///////////////////////////////////// + ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL + QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+ + /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP + SgCOSQCPTAKFOwDVvaT////9/Pv+/v7///////////////////////////////////////////////// + ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8 + +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7///////// + /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO + SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF + OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+ + ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/ + //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7///////////////////////// + ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/ + mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79 + /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN + RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ + TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7///// + ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7///// + ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+ + /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ + TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP + SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH + PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/ + ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5 + 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+ + /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ + QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE + oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/ + ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7///////////////////////// + ///////////////////////////////////////////////////////+/v7+//////////////////// + ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+ + /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9 + /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP + SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL + RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7///////////////////////////////// + ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/ + ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7///////// + ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP + SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI + PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/ + ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x + glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7///////////////////////////// + ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM + RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+ + /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/ + ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP + SgCOSgGLRQGTURDz7ef+/v39/f3+/v7///////////////////////////////////////////////// + ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+ + /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7///////////// + ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN + RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9 + /fz9/f3+/v7+/v7///////////////////////////////////////////////////////////////// + ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO + SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7///////////////////////////////////////// + ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO + SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7///// + //////////////////////////////////////////////////////////////////////////////// + ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS + UA/y6+X+/v39/fz+/v7+/v7///////////////////////////////////////////////////////// + ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP + SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7///////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+ + /v7///////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO + SQCOSQGJQQDi0cD////9/Pv+/v7///////////////////////////////////////////////////// + ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J + QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39 + /fz+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz + hFazhFayhFazhVete1TWvqb////9/fz+/v7///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7///////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+ + /f3+/f3///////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v7+//////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////v7+ + /f39//////////////////////////////////////////////////////////////////////////// + ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39 + /fz8/v79/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA + nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1//// + x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV + i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC + jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC + hz8Ap3I//fz7/fz8/v79/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7 + /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8 + +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p + /v39/f38/v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+ + ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb + 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//7+/f39 + /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7//// + 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+ + /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA + j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB + j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB + i0UAlVYZ8+3m/f79/f38/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+//////////////// + /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39 + /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+ + sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+ + /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+//////// + /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+ + /f39/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO + /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39 + 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39 + /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+//////////////////////////// + /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+//// + /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A + kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + jkoCikIC4tHA/////Pv7/v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC + hz4A1r6m/////Pz7/v7+/v7+/////v7+//////////////////////////////////////////////// + /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+ + /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+//////////////////// + /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM + /////Pv6/v7+/v7+/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA + j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+//////////////////////////////////////// + /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+ + /v7+/v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+ + /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7 + /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq//// + /Pv6/v7+/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A + j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA + kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA + j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6 + /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+//////// + /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+ + /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA + xaJ//////Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU + /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA + j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+//////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+//////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+//////////// + 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+ + /////v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39 + /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/ + /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6 + ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+ + /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC + kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB + kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39//// + /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA + hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA + iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A + j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU + z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+//////// + /v7+/////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7//v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn + +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3 + +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8 + /fz8/v7+/////v7+/////v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v///v7+/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT + z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7 + ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A + hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A + fS0AtIdb/f38/Pz8///+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D + kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL + jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+//////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA + jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3 + iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA + jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA + jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK + 6t7S/v7+/fz8/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+//////////////////////// + /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs//// + /Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7 + /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38 + /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fz8 + /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+//////////////////////////////////// + /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+ + /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA + jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A + pnA8/Pv6/fz7/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq + iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+ + /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+//////////// + /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+ + //7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A + 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES + jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+//////////////// + /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6 + /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7 + /v79/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v39 + /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8 + +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+ + /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ + hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ + 8+3m/f39/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+ + /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA + jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA + u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA + j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA + jkkCikQE49PC/v7//fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8 + /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+ + /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7//// + t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA + jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU + hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD + /////fz8//7//v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA + oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC + hj0Az7SX/////fz7//7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//7+ + /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH + jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA + jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT//// + /Pz8/v7//v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA + t4tf/////fz7/v7+/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs + mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6 + /v7+/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v7+ + /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx + +/n3/fz8/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+ + rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA + jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW + k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV + kU8TmVoj8ejg/v39/fz7/v7//f39/v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off + 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v////7+/v7+/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v39/v7+ + ///+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v////// + /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v79/////////v7+/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v79/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////9/Lt9/Pu + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2svnmMrzrGR/////fz7//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ + /v39/fz8/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h + /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0//// + 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC + j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + jUgBlFIO7uTa/////f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB + jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7 + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+ + /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38//////////////////// + /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z + iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+ + sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG//// + /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + hz4Ar35J/v39/fz8/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+//////// + /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38//////////////////////////////// + /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+//////////////////////////////////////////// + /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA + /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW + k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+ + /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+//////////////////// + /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iEAA176j/////fz7//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39//////////////////////////////////////////// + ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38 + /fz8/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEA1buf/////fz8/v7+/v7+//////////////////////////////////////////////////////// + /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+ + /////////////////////////////////////////////////////////////////////////////v7+ + /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+//////////// + /////////////////////////////////////////////////////////////////////fz7////yKaB + hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v///f38////sH9K + hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+//////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oBi0QAnmIj9vHs/v39/v39//////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA + nWAf9vHs/v7+/v79//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo//// + /fz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v///f38//// + 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8//////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/v79+/n3omor + ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm + +PTw/v39/f39//////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sBjEUAmVwb9e/p/v7+/f38//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A + vpVq/////fz7/v/+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8AyKaB/////fz7/v///v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39 + //7///////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC + jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsCiD8Auo9h/////fz8/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE + iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB + 4tC+/////f38/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjUcBk1EN7+Xb/////f39/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj + n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f38////u5Jlhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkBjUgE4M66/////fz7/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR + 7+bd/v7+/f39//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv + +/n4/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0 + rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6 + ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC + hz4AtolZ/////fz8/v3+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA + j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + j0sBikIApGww+vj1/v39/f39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ + j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M + /////Pz7/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkCjkkG4c+7/////fz7/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+///+/v39 + /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d//// + /fz7/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/f38/f38 + 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A + jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sBiD8AyKiE/////fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oBiUEApW4z+vj1/v39/v39//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ + /v7+/f38/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4 + 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD + 49PB/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/Pz7//// + 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6//// + /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A + j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC + iUEAqHQ7+/j2/fz8/v39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jUgBkk8K7ODV/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL//// + /f38/v7+///+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6//////// + ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A + ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38 + /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBiUEA1Lqd/////fv6//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38 + sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+//////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////v7+/v39 + /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq + 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38 + /v39/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjUgBkU4J6NrM/////fz8//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA + jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEArnxG/v7+/f38/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO + 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i//// + /Pz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA + hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39//////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr + vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g + 4M24/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY + llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+//////////////////////////// + /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsCiUEArXpD/v7//f39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB + ikMA1bqf/////fz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39 + /f38/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39 + /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/////////v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI + iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8//// + /fz8//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA + mVsZ8+zl/v38/fz8//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7 + /v7+//7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz7/v7+ + 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf + 9vHs/v79/fz8//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z + iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAi0YAl1gT8+3l/v7+/f39//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA + upFj/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC + hz4AwZty/////fz8/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////f39 + /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC + jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ + hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsChz4At4ta/////fz8/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjUgCkEwL6dzO/////fz7//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD + 38y3/////fz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v/+/f39/v79 + +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////fz8 + /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A + kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK + 5tbG/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBjUcB4M25/////f38/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos + +PTw/fz8/f39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA + kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB + iUAAq3dA/Pr4/fz7/f39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v///fz7 + ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA + j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0oBikMAomgq+vf0/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////Pz7////4M24 + i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiUEA0rea/////fz7/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7 + /v38/v39/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////f38/v79 + +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/f38 + ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + kEwChz4AxaJ8/////fz7/v7+//////////////////////////////////////////////////////// + ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA + 07mb/////Pz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU + /v7+/Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+//// + //////////////////////////////////////////////////////////////////////////////7/ + /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7///////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+//////////////////////////// + /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jEQAm10b9O/p/v7+/f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+//////////////////////////////////////// + /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7 + /v7//v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jUgAklAK6dzO/////f38/v////////////////////////////////////////////////////////// + /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6 + /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng + lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+ + /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiD8Au5Jl/////fz8/v7+//7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+//////////////////// + /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj + /v39/fz8/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+//////////////////////////// + /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8 + ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb//// + /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A + upFj/////fz8/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+ + /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7//////////////////////// + /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf + llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA + kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkBjUcA49LA/////f38/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79 + /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3 + qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8////0baX + iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD + /////fz8/v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA + nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA + qHI4/Pv5/v39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+ + iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + kEsChz8Az7KS/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7 + /v39/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v39 + /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////fz8////59jIj0oD + jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ + /////fz8//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB + llYW7+Xb/v7+/f38/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0wChz8AuIxc/v7+/fz7/v39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+ + /v39/v////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fv6 + ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAjkkBjEYA4M24/////fz8/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa + /////f38//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v39/fz7 + 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB + jUcE3sq2/////Pz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oBikMAomgq+fXy/v39/f39//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/fz7//// + 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq + +vf1/f38/f39//7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39 + tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS + yqqM38u2/////v79/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/v79//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v79/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxHistory.Designer.cs b/LFP_Manager/Forms/fmxHistory.Designer.cs new file mode 100644 index 0000000..59f8009 --- /dev/null +++ b/LFP_Manager/Forms/fmxHistory.Designer.cs @@ -0,0 +1,943 @@ +namespace LFP_Manager.Forms +{ + partial class fmxHistory + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxHistory)); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.tabHistory = new DevExpress.XtraTab.XtraTabControl(); + this.pgGuiHistory = new DevExpress.XtraTab.XtraTabPage(); + this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl(); + this.ucHistroy1 = new LFP_Manager.Controls.ucHistroy(); + this.Root = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.pgBmsHistory = new DevExpress.XtraTab.XtraTabPage(); + this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl(); + this.btnExportExcel = new DevExpress.XtraEditors.SimpleButton(); + this.btnBmsHistoryReq = new DevExpress.XtraEditors.SimpleButton(); + this.gcBmsHistory = new DevExpress.XtraGrid.GridControl(); + this.gvBmsHistory = new DevExpress.XtraGrid.Views.Grid.GridView(); + this.gcNo = new DevExpress.XtraGrid.Columns.GridColumn(); + this.gcHistDateTime = new DevExpress.XtraGrid.Columns.GridColumn(); + this.gcStatus = new DevExpress.XtraGrid.Columns.GridColumn(); + this.gcWarning = new DevExpress.XtraGrid.Columns.GridColumn(); + this.gcProtect = new DevExpress.XtraGrid.Columns.GridColumn(); + this.gcError = new DevExpress.XtraGrid.Columns.GridColumn(); + this.gcVoltage = new DevExpress.XtraGrid.Columns.GridColumn(); + this.gcCurrent = new DevExpress.XtraGrid.Columns.GridColumn(); + this.gcSOC = new DevExpress.XtraGrid.Columns.GridColumn(); + this.gcSOH = new DevExpress.XtraGrid.Columns.GridColumn(); + this.gcTemp1 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.gcTemp2 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.gcTemp3 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.gcTemp4 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.gcTemp5 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.gcTemp6 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.cell_v_1 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.cell_v_2 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.cell_v_3 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.cell_v_4 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.cell_v_5 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.cell_v_6 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.cell_v_7 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.cell_v_8 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.cell_v_9 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.cell_v_10 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.cell_v_11 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.cell_v_12 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.cell_v_13 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.cell_v_14 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.cell_v_15 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.cell_v_16 = new DevExpress.XtraGrid.Columns.GridColumn(); + this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.btnClose = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.TmrCheckReq = new System.Windows.Forms.Timer(this.components); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.tabHistory)).BeginInit(); + this.tabHistory.SuspendLayout(); + this.pgGuiHistory.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit(); + this.layoutControl2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + this.pgBmsHistory.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit(); + this.layoutControl3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.gcBmsHistory)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gvBmsHistory)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.tabHistory); + this.layoutControl1.Controls.Add(this.btnClose); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1215, 341, 650, 400); + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(911, 602); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // tabHistory + // + this.tabHistory.Location = new System.Drawing.Point(3, 3); + this.tabHistory.Name = "tabHistory"; + this.tabHistory.SelectedTabPage = this.pgGuiHistory; + this.tabHistory.Size = new System.Drawing.Size(905, 552); + this.tabHistory.TabIndex = 6; + this.tabHistory.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] { + this.pgGuiHistory, + this.pgBmsHistory}); + // + // pgGuiHistory + // + this.pgGuiHistory.Controls.Add(this.layoutControl2); + this.pgGuiHistory.Name = "pgGuiHistory"; + this.pgGuiHistory.Size = new System.Drawing.Size(903, 526); + this.pgGuiHistory.Text = "GUI History"; + // + // layoutControl2 + // + this.layoutControl2.Controls.Add(this.ucHistroy1); + this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl2.Location = new System.Drawing.Point(0, 0); + this.layoutControl2.Name = "layoutControl2"; + this.layoutControl2.Root = this.Root; + this.layoutControl2.Size = new System.Drawing.Size(903, 526); + this.layoutControl2.TabIndex = 0; + this.layoutControl2.Text = "layoutControl2"; + // + // ucHistroy1 + // + this.ucHistroy1.Location = new System.Drawing.Point(3, 3); + this.ucHistroy1.Name = "ucHistroy1"; + this.ucHistroy1.Size = new System.Drawing.Size(897, 520); + this.ucHistroy1.TabIndex = 4; + // + // Root + // + this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.Root.GroupBordersVisible = false; + this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem1}); + this.Root.Name = "Root"; + this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.Root.Size = new System.Drawing.Size(903, 526); + this.Root.TextVisible = false; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.ucHistroy1; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(901, 524); + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // pgBmsHistory + // + this.pgBmsHistory.Controls.Add(this.layoutControl3); + this.pgBmsHistory.Name = "pgBmsHistory"; + this.pgBmsHistory.Size = new System.Drawing.Size(903, 526); + this.pgBmsHistory.Text = "BMS History"; + // + // layoutControl3 + // + this.layoutControl3.Controls.Add(this.btnExportExcel); + this.layoutControl3.Controls.Add(this.btnBmsHistoryReq); + this.layoutControl3.Controls.Add(this.gcBmsHistory); + this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl3.Location = new System.Drawing.Point(0, 0); + this.layoutControl3.Name = "layoutControl3"; + this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1211, 293, 650, 400); + this.layoutControl3.Root = this.layoutControlGroup2; + this.layoutControl3.Size = new System.Drawing.Size(903, 526); + this.layoutControl3.TabIndex = 0; + this.layoutControl3.Text = "layoutControl3"; + // + // btnExportExcel + // + this.btnExportExcel.Location = new System.Drawing.Point(782, 485); + this.btnExportExcel.Name = "btnExportExcel"; + this.btnExportExcel.Size = new System.Drawing.Size(113, 33); + this.btnExportExcel.StyleController = this.layoutControl3; + this.btnExportExcel.TabIndex = 6; + this.btnExportExcel.Text = "Export Excel"; + this.btnExportExcel.Click += new System.EventHandler(this.btnExportExcel_Click); + // + // btnBmsHistoryReq + // + this.btnBmsHistoryReq.Location = new System.Drawing.Point(781, 29); + this.btnBmsHistoryReq.Name = "btnBmsHistoryReq"; + this.btnBmsHistoryReq.Size = new System.Drawing.Size(114, 31); + this.btnBmsHistoryReq.StyleController = this.layoutControl3; + this.btnBmsHistoryReq.TabIndex = 5; + this.btnBmsHistoryReq.Text = "Request"; + this.btnBmsHistoryReq.Click += new System.EventHandler(this.btnBmsHistoryReq_Click); + // + // gcBmsHistory + // + this.gcBmsHistory.Location = new System.Drawing.Point(8, 93); + this.gcBmsHistory.MainView = this.gvBmsHistory; + this.gcBmsHistory.Name = "gcBmsHistory"; + this.gcBmsHistory.Size = new System.Drawing.Size(887, 388); + this.gcBmsHistory.TabIndex = 4; + this.gcBmsHistory.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { + this.gvBmsHistory}); + // + // gvBmsHistory + // + this.gvBmsHistory.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { + this.gcNo, + this.gcHistDateTime, + this.gcStatus, + this.gcWarning, + this.gcProtect, + this.gcError, + this.gcVoltage, + this.gcCurrent, + this.gcSOC, + this.gcSOH, + this.gcTemp1, + this.gcTemp2, + this.gcTemp3, + this.gcTemp4, + this.gcTemp5, + this.gcTemp6, + this.cell_v_1, + this.cell_v_2, + this.cell_v_3, + this.cell_v_4, + this.cell_v_5, + this.cell_v_6, + this.cell_v_7, + this.cell_v_8, + this.cell_v_9, + this.cell_v_10, + this.cell_v_11, + this.cell_v_12, + this.cell_v_13, + this.cell_v_14, + this.cell_v_15, + this.cell_v_16}); + this.gvBmsHistory.GridControl = this.gcBmsHistory; + this.gvBmsHistory.Name = "gvBmsHistory"; + this.gvBmsHistory.OptionsView.ColumnAutoWidth = false; + this.gvBmsHistory.OptionsView.ShowGroupPanel = false; + this.gvBmsHistory.CustomColumnDisplayText += new DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(this.gvBmsHistory_CustomColumnDisplayText); + // + // gcNo + // + this.gcNo.AppearanceCell.Options.UseTextOptions = true; + this.gcNo.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcNo.AppearanceHeader.Options.UseTextOptions = true; + this.gcNo.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcNo.Caption = "No"; + this.gcNo.DisplayFormat.FormatString = "0"; + this.gcNo.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.gcNo.FieldName = "no"; + this.gcNo.Name = "gcNo"; + this.gcNo.Visible = true; + this.gcNo.VisibleIndex = 0; + // + // gcHistDateTime + // + this.gcHistDateTime.AppearanceHeader.Options.UseTextOptions = true; + this.gcHistDateTime.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcHistDateTime.Caption = "DateTime"; + this.gcHistDateTime.DisplayFormat.FormatString = "yyyy-MM-dd HH:mm:ss"; + this.gcHistDateTime.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; + this.gcHistDateTime.FieldName = "datetime"; + this.gcHistDateTime.Name = "gcHistDateTime"; + this.gcHistDateTime.Visible = true; + this.gcHistDateTime.VisibleIndex = 1; + // + // gcStatus + // + this.gcStatus.AppearanceCell.Options.UseTextOptions = true; + this.gcStatus.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcStatus.AppearanceHeader.Options.UseTextOptions = true; + this.gcStatus.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcStatus.Caption = "Status"; + this.gcStatus.FieldName = "status"; + this.gcStatus.Name = "gcStatus"; + this.gcStatus.Visible = true; + this.gcStatus.VisibleIndex = 2; + // + // gcWarning + // + this.gcWarning.AppearanceCell.Options.UseTextOptions = true; + this.gcWarning.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcWarning.AppearanceHeader.Options.UseTextOptions = true; + this.gcWarning.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcWarning.Caption = "Warning"; + this.gcWarning.FieldName = "warning"; + this.gcWarning.Name = "gcWarning"; + this.gcWarning.Visible = true; + this.gcWarning.VisibleIndex = 3; + // + // gcProtect + // + this.gcProtect.AppearanceCell.Options.UseTextOptions = true; + this.gcProtect.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcProtect.AppearanceHeader.Options.UseTextOptions = true; + this.gcProtect.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcProtect.Caption = "Protect"; + this.gcProtect.FieldName = "protect"; + this.gcProtect.Name = "gcProtect"; + this.gcProtect.Visible = true; + this.gcProtect.VisibleIndex = 4; + // + // gcError + // + this.gcError.AppearanceCell.Options.UseTextOptions = true; + this.gcError.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcError.AppearanceHeader.Options.UseTextOptions = true; + this.gcError.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcError.Caption = "Error"; + this.gcError.FieldName = "error"; + this.gcError.Name = "gcError"; + this.gcError.Visible = true; + this.gcError.VisibleIndex = 5; + // + // gcVoltage + // + this.gcVoltage.AppearanceCell.Options.UseTextOptions = true; + this.gcVoltage.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.gcVoltage.AppearanceHeader.Options.UseTextOptions = true; + this.gcVoltage.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcVoltage.Caption = "Voltage"; + this.gcVoltage.DisplayFormat.FormatString = "0.00"; + this.gcVoltage.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.gcVoltage.FieldName = "voltage"; + this.gcVoltage.Name = "gcVoltage"; + this.gcVoltage.Visible = true; + this.gcVoltage.VisibleIndex = 6; + // + // gcCurrent + // + this.gcCurrent.AppearanceCell.Options.UseTextOptions = true; + this.gcCurrent.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.gcCurrent.AppearanceHeader.Options.UseTextOptions = true; + this.gcCurrent.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcCurrent.Caption = "Current"; + this.gcCurrent.DisplayFormat.FormatString = "0.00"; + this.gcCurrent.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.gcCurrent.FieldName = "current"; + this.gcCurrent.Name = "gcCurrent"; + this.gcCurrent.Visible = true; + this.gcCurrent.VisibleIndex = 7; + // + // gcSOC + // + this.gcSOC.AppearanceCell.Options.UseTextOptions = true; + this.gcSOC.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.gcSOC.AppearanceHeader.Options.UseTextOptions = true; + this.gcSOC.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcSOC.Caption = "SOC"; + this.gcSOC.DisplayFormat.FormatString = "0.0"; + this.gcSOC.FieldName = "SOC"; + this.gcSOC.Name = "gcSOC"; + this.gcSOC.Visible = true; + this.gcSOC.VisibleIndex = 8; + // + // gcSOH + // + this.gcSOH.AppearanceCell.Options.UseTextOptions = true; + this.gcSOH.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.gcSOH.AppearanceHeader.Options.UseTextOptions = true; + this.gcSOH.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcSOH.Caption = "SOH"; + this.gcSOH.DisplayFormat.FormatString = "0.0"; + this.gcSOH.FieldName = "SOH"; + this.gcSOH.Name = "gcSOH"; + this.gcSOH.Visible = true; + this.gcSOH.VisibleIndex = 9; + // + // gcTemp1 + // + this.gcTemp1.AppearanceCell.Options.UseTextOptions = true; + this.gcTemp1.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.gcTemp1.AppearanceHeader.Options.UseTextOptions = true; + this.gcTemp1.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcTemp1.Caption = "Temp1"; + this.gcTemp1.DisplayFormat.FormatString = "0.0"; + this.gcTemp1.FieldName = "temp_01"; + this.gcTemp1.Name = "gcTemp1"; + this.gcTemp1.Visible = true; + this.gcTemp1.VisibleIndex = 10; + // + // gcTemp2 + // + this.gcTemp2.AppearanceCell.Options.UseTextOptions = true; + this.gcTemp2.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.gcTemp2.AppearanceHeader.Options.UseTextOptions = true; + this.gcTemp2.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcTemp2.Caption = "Temp2"; + this.gcTemp2.DisplayFormat.FormatString = "0.0"; + this.gcTemp2.FieldName = "temp_02"; + this.gcTemp2.Name = "gcTemp2"; + this.gcTemp2.Visible = true; + this.gcTemp2.VisibleIndex = 11; + // + // gcTemp3 + // + this.gcTemp3.AppearanceCell.Options.UseTextOptions = true; + this.gcTemp3.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.gcTemp3.AppearanceHeader.Options.UseTextOptions = true; + this.gcTemp3.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcTemp3.Caption = "Temp3"; + this.gcTemp3.DisplayFormat.FormatString = "0.0"; + this.gcTemp3.FieldName = "temp_03"; + this.gcTemp3.Name = "gcTemp3"; + this.gcTemp3.Visible = true; + this.gcTemp3.VisibleIndex = 12; + // + // gcTemp4 + // + this.gcTemp4.AppearanceCell.Options.UseTextOptions = true; + this.gcTemp4.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.gcTemp4.AppearanceHeader.Options.UseTextOptions = true; + this.gcTemp4.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcTemp4.Caption = "Temp4"; + this.gcTemp4.DisplayFormat.FormatString = "0.0"; + this.gcTemp4.FieldName = "temp_04"; + this.gcTemp4.Name = "gcTemp4"; + this.gcTemp4.Visible = true; + this.gcTemp4.VisibleIndex = 13; + // + // gcTemp5 + // + this.gcTemp5.AppearanceCell.Options.UseTextOptions = true; + this.gcTemp5.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.gcTemp5.AppearanceHeader.Options.UseTextOptions = true; + this.gcTemp5.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcTemp5.Caption = "Temp5"; + this.gcTemp5.DisplayFormat.FormatString = "0.0"; + this.gcTemp5.FieldName = "temp_05"; + this.gcTemp5.Name = "gcTemp5"; + this.gcTemp5.Visible = true; + this.gcTemp5.VisibleIndex = 14; + // + // gcTemp6 + // + this.gcTemp6.AppearanceCell.Options.UseTextOptions = true; + this.gcTemp6.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.gcTemp6.AppearanceHeader.Options.UseTextOptions = true; + this.gcTemp6.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.gcTemp6.Caption = "Temp6"; + this.gcTemp6.DisplayFormat.FormatString = "0.0"; + this.gcTemp6.FieldName = "temp_06"; + this.gcTemp6.Name = "gcTemp6"; + this.gcTemp6.Visible = true; + this.gcTemp6.VisibleIndex = 15; + // + // cell_v_1 + // + this.cell_v_1.AppearanceCell.Options.UseTextOptions = true; + this.cell_v_1.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cell_v_1.AppearanceHeader.Options.UseTextOptions = true; + this.cell_v_1.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.cell_v_1.Caption = "cell_v_1"; + this.cell_v_1.DisplayFormat.FormatString = "0.000"; + this.cell_v_1.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.cell_v_1.FieldName = "cell_v_01"; + this.cell_v_1.Name = "cell_v_1"; + this.cell_v_1.Visible = true; + this.cell_v_1.VisibleIndex = 16; + // + // cell_v_2 + // + this.cell_v_2.AppearanceCell.Options.UseTextOptions = true; + this.cell_v_2.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cell_v_2.AppearanceHeader.Options.UseTextOptions = true; + this.cell_v_2.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.cell_v_2.Caption = "cell_v_2"; + this.cell_v_2.DisplayFormat.FormatString = "0.000"; + this.cell_v_2.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.cell_v_2.FieldName = "cell_v_02"; + this.cell_v_2.Name = "cell_v_2"; + this.cell_v_2.Visible = true; + this.cell_v_2.VisibleIndex = 17; + // + // cell_v_3 + // + this.cell_v_3.AppearanceCell.Options.UseTextOptions = true; + this.cell_v_3.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cell_v_3.AppearanceHeader.Options.UseTextOptions = true; + this.cell_v_3.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.cell_v_3.Caption = "cell_v_3"; + this.cell_v_3.DisplayFormat.FormatString = "0.000"; + this.cell_v_3.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.cell_v_3.FieldName = "cell_v_03"; + this.cell_v_3.Name = "cell_v_3"; + this.cell_v_3.Visible = true; + this.cell_v_3.VisibleIndex = 18; + // + // cell_v_4 + // + this.cell_v_4.AppearanceCell.Options.UseTextOptions = true; + this.cell_v_4.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cell_v_4.AppearanceHeader.Options.UseTextOptions = true; + this.cell_v_4.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.cell_v_4.Caption = "cell_v_4"; + this.cell_v_4.DisplayFormat.FormatString = "0.000"; + this.cell_v_4.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.cell_v_4.FieldName = "cell_v_04"; + this.cell_v_4.Name = "cell_v_4"; + this.cell_v_4.Visible = true; + this.cell_v_4.VisibleIndex = 19; + // + // cell_v_5 + // + this.cell_v_5.AppearanceCell.Options.UseTextOptions = true; + this.cell_v_5.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cell_v_5.AppearanceHeader.Options.UseTextOptions = true; + this.cell_v_5.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.cell_v_5.Caption = "cell_v_5"; + this.cell_v_5.DisplayFormat.FormatString = "0.000"; + this.cell_v_5.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.cell_v_5.FieldName = "cell_v_05"; + this.cell_v_5.Name = "cell_v_5"; + this.cell_v_5.Visible = true; + this.cell_v_5.VisibleIndex = 20; + // + // cell_v_6 + // + this.cell_v_6.AppearanceCell.Options.UseTextOptions = true; + this.cell_v_6.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cell_v_6.AppearanceHeader.Options.UseTextOptions = true; + this.cell_v_6.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.cell_v_6.Caption = "cell_v_6"; + this.cell_v_6.DisplayFormat.FormatString = "0.000"; + this.cell_v_6.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.cell_v_6.FieldName = "cell_v_06"; + this.cell_v_6.Name = "cell_v_6"; + this.cell_v_6.Visible = true; + this.cell_v_6.VisibleIndex = 21; + // + // cell_v_7 + // + this.cell_v_7.AppearanceCell.Options.UseTextOptions = true; + this.cell_v_7.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cell_v_7.AppearanceHeader.Options.UseTextOptions = true; + this.cell_v_7.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.cell_v_7.Caption = "cell_v_7"; + this.cell_v_7.DisplayFormat.FormatString = "0.000"; + this.cell_v_7.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.cell_v_7.FieldName = "cell_v_07"; + this.cell_v_7.Name = "cell_v_7"; + this.cell_v_7.Visible = true; + this.cell_v_7.VisibleIndex = 22; + // + // cell_v_8 + // + this.cell_v_8.AppearanceCell.Options.UseTextOptions = true; + this.cell_v_8.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cell_v_8.AppearanceHeader.Options.UseTextOptions = true; + this.cell_v_8.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.cell_v_8.Caption = "cell_v_8"; + this.cell_v_8.DisplayFormat.FormatString = "0.000"; + this.cell_v_8.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.cell_v_8.FieldName = "cell_v_08"; + this.cell_v_8.Name = "cell_v_8"; + this.cell_v_8.Visible = true; + this.cell_v_8.VisibleIndex = 23; + // + // cell_v_9 + // + this.cell_v_9.AppearanceCell.Options.UseTextOptions = true; + this.cell_v_9.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cell_v_9.AppearanceHeader.Options.UseTextOptions = true; + this.cell_v_9.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.cell_v_9.Caption = "cell_v_9"; + this.cell_v_9.DisplayFormat.FormatString = "0.000"; + this.cell_v_9.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.cell_v_9.FieldName = "cell_v_09"; + this.cell_v_9.Name = "cell_v_9"; + this.cell_v_9.Visible = true; + this.cell_v_9.VisibleIndex = 24; + // + // cell_v_10 + // + this.cell_v_10.AppearanceCell.Options.UseTextOptions = true; + this.cell_v_10.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cell_v_10.AppearanceHeader.Options.UseTextOptions = true; + this.cell_v_10.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.cell_v_10.Caption = "cell_v_10"; + this.cell_v_10.DisplayFormat.FormatString = "0.000"; + this.cell_v_10.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.cell_v_10.FieldName = "cell_v_10"; + this.cell_v_10.Name = "cell_v_10"; + this.cell_v_10.Visible = true; + this.cell_v_10.VisibleIndex = 25; + // + // cell_v_11 + // + this.cell_v_11.AppearanceCell.Options.UseTextOptions = true; + this.cell_v_11.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cell_v_11.AppearanceHeader.Options.UseTextOptions = true; + this.cell_v_11.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.cell_v_11.Caption = "cell_v_11"; + this.cell_v_11.DisplayFormat.FormatString = "0.000"; + this.cell_v_11.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.cell_v_11.FieldName = "cell_v_11"; + this.cell_v_11.Name = "cell_v_11"; + this.cell_v_11.Visible = true; + this.cell_v_11.VisibleIndex = 26; + // + // cell_v_12 + // + this.cell_v_12.AppearanceCell.Options.UseTextOptions = true; + this.cell_v_12.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cell_v_12.AppearanceHeader.Options.UseTextOptions = true; + this.cell_v_12.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.cell_v_12.Caption = "cell_v_12"; + this.cell_v_12.DisplayFormat.FormatString = "0.000"; + this.cell_v_12.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.cell_v_12.FieldName = "cell_v_12"; + this.cell_v_12.Name = "cell_v_12"; + this.cell_v_12.Visible = true; + this.cell_v_12.VisibleIndex = 27; + // + // cell_v_13 + // + this.cell_v_13.AppearanceCell.Options.UseTextOptions = true; + this.cell_v_13.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cell_v_13.AppearanceHeader.Options.UseTextOptions = true; + this.cell_v_13.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.cell_v_13.Caption = "cell_v_13"; + this.cell_v_13.DisplayFormat.FormatString = "0.000"; + this.cell_v_13.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.cell_v_13.FieldName = "cell_v_13"; + this.cell_v_13.Name = "cell_v_13"; + this.cell_v_13.Visible = true; + this.cell_v_13.VisibleIndex = 28; + // + // cell_v_14 + // + this.cell_v_14.AppearanceCell.Options.UseTextOptions = true; + this.cell_v_14.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cell_v_14.AppearanceHeader.Options.UseTextOptions = true; + this.cell_v_14.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.cell_v_14.Caption = "cell_v_14"; + this.cell_v_14.DisplayFormat.FormatString = "0.000"; + this.cell_v_14.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.cell_v_14.FieldName = "cell_v_14"; + this.cell_v_14.Name = "cell_v_14"; + this.cell_v_14.Visible = true; + this.cell_v_14.VisibleIndex = 29; + // + // cell_v_15 + // + this.cell_v_15.AppearanceCell.Options.UseTextOptions = true; + this.cell_v_15.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cell_v_15.AppearanceHeader.Options.UseTextOptions = true; + this.cell_v_15.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.cell_v_15.Caption = "cell_v_15"; + this.cell_v_15.DisplayFormat.FormatString = "0.000"; + this.cell_v_15.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.cell_v_15.FieldName = "cell_v_15"; + this.cell_v_15.Name = "cell_v_15"; + this.cell_v_15.Visible = true; + this.cell_v_15.VisibleIndex = 30; + // + // cell_v_16 + // + this.cell_v_16.AppearanceCell.Options.UseTextOptions = true; + this.cell_v_16.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cell_v_16.AppearanceHeader.Options.UseTextOptions = true; + this.cell_v_16.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.cell_v_16.Caption = "cell_v_16"; + this.cell_v_16.DisplayFormat.FormatString = "0.000"; + this.cell_v_16.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; + this.cell_v_16.FieldName = "cell_v_16"; + this.cell_v_16.Name = "cell_v_16"; + this.cell_v_16.Visible = true; + this.cell_v_16.VisibleIndex = 31; + // + // layoutControlGroup2 + // + this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup2.GroupBordersVisible = false; + this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlGroup3, + this.layoutControlGroup4}); + this.layoutControlGroup2.Name = "Root"; + this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2); + this.layoutControlGroup2.Size = new System.Drawing.Size(903, 526); + this.layoutControlGroup2.TextVisible = false; + // + // layoutControlGroup3 + // + this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.emptySpaceItem1, + this.layoutControlItem5}); + this.layoutControlGroup3.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup3.Name = "layoutControlGroup3"; + this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup3.Size = new System.Drawing.Size(899, 64); + this.layoutControlGroup3.Text = "Command"; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.Location = new System.Drawing.Point(0, 0); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(773, 35); + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem5 + // + this.layoutControlItem5.Control = this.btnBmsHistoryReq; + this.layoutControlItem5.Location = new System.Drawing.Point(773, 0); + this.layoutControlItem5.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem5.Name = "layoutControlItem5"; + this.layoutControlItem5.Size = new System.Drawing.Size(118, 35); + this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem5.TextVisible = false; + // + // layoutControlGroup4 + // + this.layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem4, + this.layoutControlItem6, + this.emptySpaceItem2}); + this.layoutControlGroup4.Location = new System.Drawing.Point(0, 64); + this.layoutControlGroup4.Name = "layoutControlGroup4"; + this.layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup4.Size = new System.Drawing.Size(899, 458); + this.layoutControlGroup4.Text = "Result"; + // + // layoutControlItem4 + // + this.layoutControlItem4.Control = this.gcBmsHistory; + this.layoutControlItem4.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem4.MinSize = new System.Drawing.Size(104, 24); + this.layoutControlItem4.Name = "layoutControlItem4"; + this.layoutControlItem4.Size = new System.Drawing.Size(891, 392); + this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem4.TextVisible = false; + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.btnExportExcel; + this.layoutControlItem6.Location = new System.Drawing.Point(774, 392); + this.layoutControlItem6.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(117, 37); + this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem6.TextVisible = false; + // + // emptySpaceItem2 + // + this.emptySpaceItem2.AllowHotTrack = false; + this.emptySpaceItem2.Location = new System.Drawing.Point(0, 392); + this.emptySpaceItem2.MinSize = new System.Drawing.Size(104, 24); + this.emptySpaceItem2.Name = "emptySpaceItem2"; + this.emptySpaceItem2.Size = new System.Drawing.Size(774, 37); + this.emptySpaceItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0); + // + // btnClose + // + this.btnClose.Location = new System.Drawing.Point(3, 559); + this.btnClose.Name = "btnClose"; + this.btnClose.Size = new System.Drawing.Size(905, 40); + this.btnClose.StyleController = this.layoutControl1; + this.btnClose.TabIndex = 5; + this.btnClose.Text = "Close"; + this.btnClose.Click += new System.EventHandler(this.btnClose_Click); + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem2, + this.layoutControlItem3}); + this.layoutControlGroup1.Name = "Root"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup1.Size = new System.Drawing.Size(911, 602); + this.layoutControlGroup1.TextVisible = false; + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.btnClose; + this.layoutControlItem2.Location = new System.Drawing.Point(0, 556); + this.layoutControlItem2.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(909, 44); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.tabHistory; + this.layoutControlItem3.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(909, 556); + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextVisible = false; + // + // TmrCheckReq + // + this.TmrCheckReq.Interval = 500; + this.TmrCheckReq.Tick += new System.EventHandler(this.TmrCheckReq_Tick); + // + // fmxHistory + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(911, 602); + this.Controls.Add(this.layoutControl1); + this.IconOptions.Image = ((System.Drawing.Image)(resources.GetObject("fmxHistory.IconOptions.Image"))); + this.Name = "fmxHistory"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "History"; + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.tabHistory)).EndInit(); + this.tabHistory.ResumeLayout(false); + this.pgGuiHistory.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit(); + this.layoutControl2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + this.pgBmsHistory.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit(); + this.layoutControl3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.gcBmsHistory)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gvBmsHistory)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private Controls.ucHistroy ucHistroy1; + private DevExpress.XtraEditors.SimpleButton btnClose; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraTab.XtraTabControl tabHistory; + private DevExpress.XtraTab.XtraTabPage pgGuiHistory; + private DevExpress.XtraLayout.LayoutControl layoutControl2; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraTab.XtraTabPage pgBmsHistory; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraLayout.LayoutControl layoutControl3; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraGrid.GridControl gcBmsHistory; + private DevExpress.XtraGrid.Views.Grid.GridView gvBmsHistory; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private DevExpress.XtraEditors.SimpleButton btnBmsHistoryReq; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4; + private DevExpress.XtraGrid.Columns.GridColumn gcHistDateTime; + private DevExpress.XtraGrid.Columns.GridColumn gcStatus; + private DevExpress.XtraGrid.Columns.GridColumn gcWarning; + private DevExpress.XtraGrid.Columns.GridColumn gcProtect; + private DevExpress.XtraGrid.Columns.GridColumn gcError; + private DevExpress.XtraGrid.Columns.GridColumn gcVoltage; + private DevExpress.XtraGrid.Columns.GridColumn gcCurrent; + private DevExpress.XtraGrid.Columns.GridColumn gcSOC; + private DevExpress.XtraGrid.Columns.GridColumn gcSOH; + private DevExpress.XtraGrid.Columns.GridColumn gcTemp1; + private DevExpress.XtraGrid.Columns.GridColumn gcTemp2; + private DevExpress.XtraGrid.Columns.GridColumn gcTemp3; + private DevExpress.XtraGrid.Columns.GridColumn gcTemp4; + private DevExpress.XtraGrid.Columns.GridColumn gcTemp5; + private DevExpress.XtraGrid.Columns.GridColumn gcTemp6; + private DevExpress.XtraGrid.Columns.GridColumn cell_v_1; + private DevExpress.XtraGrid.Columns.GridColumn cell_v_2; + private DevExpress.XtraGrid.Columns.GridColumn cell_v_3; + private DevExpress.XtraGrid.Columns.GridColumn cell_v_4; + private DevExpress.XtraGrid.Columns.GridColumn cell_v_5; + private DevExpress.XtraGrid.Columns.GridColumn cell_v_6; + private DevExpress.XtraGrid.Columns.GridColumn cell_v_7; + private DevExpress.XtraGrid.Columns.GridColumn cell_v_8; + private DevExpress.XtraGrid.Columns.GridColumn cell_v_9; + private DevExpress.XtraGrid.Columns.GridColumn cell_v_10; + private DevExpress.XtraGrid.Columns.GridColumn cell_v_11; + private DevExpress.XtraGrid.Columns.GridColumn cell_v_12; + private DevExpress.XtraGrid.Columns.GridColumn cell_v_13; + private DevExpress.XtraGrid.Columns.GridColumn cell_v_14; + private DevExpress.XtraGrid.Columns.GridColumn cell_v_15; + private DevExpress.XtraGrid.Columns.GridColumn cell_v_16; + private DevExpress.XtraEditors.SimpleButton btnExportExcel; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2; + private DevExpress.XtraGrid.Columns.GridColumn gcNo; + private System.Windows.Forms.Timer TmrCheckReq; + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxHistory.cs b/LFP_Manager/Forms/fmxHistory.cs new file mode 100644 index 0000000..b6d8f8a --- /dev/null +++ b/LFP_Manager/Forms/fmxHistory.cs @@ -0,0 +1,321 @@ +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using System; +using System.Data; +using System.Windows.Forms; + +namespace LFP_Manager.Forms +{ + public partial class fmxHistory : DevExpress.XtraEditors.XtraForm + { + #region VARIABLES + + private int SystemId = 0; + private CommConfig Config; + + private byte[] rData = null; + private ushort curr_addr = 0; + private int hist_no = 0; + private bool stopReq = true; + + private DateTime ReqDateTime; + + private DataTable BmsHistoryTable = null; + + public event SendDataUartEvent OnSendUartData = null; + + #endregion + + #region CONTRUCTORS + + //public fmxHistory() + //{ + // InitializeComponent(); + //} + + public fmxHistory(CommConfig aConfig, int systemId) + { + InitializeComponent(); + + Config = aConfig; + + ucHistroy1.SetCommCofig(Config); + SystemId = systemId; + + CreateHistoryColomn(ref BmsHistoryTable); + + switch (Config.CommType) + { + case csConstData.CommType.COMM_UART: + pgBmsHistory.PageEnabled = true; + //tabHistory.TabPages.Remove(pgBmsHistory); + break; + case csConstData.CommType.COMM_RS485: + pgBmsHistory.PageEnabled = false; + tabHistory.TabPages.Remove(pgBmsHistory); + break; + case csConstData.CommType.COMM_SNMP: + pgBmsHistory.PageEnabled = false; + tabHistory.TabPages.Remove(pgBmsHistory); + break; + default: + break; + } + } + + #endregion + + #region INITIALIZE COMPONENT + + private void CreateHistoryColomn(ref DataTable hDT) + { + hDT = new DataTable(); + + hDT.Columns.Add("no", typeof(int)); + hDT.Columns.Add("datetime", typeof(DateTime)); + hDT.Columns.Add("status", typeof(int)); + hDT.Columns.Add("warning", typeof(string)); + hDT.Columns.Add("protect", typeof(string)); + hDT.Columns.Add("error", typeof(string)); + + hDT.Columns.Add("voltage", typeof(float)); + hDT.Columns.Add("current", typeof(float)); + hDT.Columns.Add("SOC", typeof(float)); + hDT.Columns.Add("SOH", typeof(float)); + + for (int i = 0; i < 6; i++) + { + hDT.Columns.Add(string.Format("temp_{0:00}", i + 1), typeof(float)); + } + for (int i = 0; i < 16; i++) + { + hDT.Columns.Add(string.Format("cell_v_{0:00}", i + 1), typeof(float)); + } + gcBmsHistory.DataSource = hDT; + } + + #endregion + + #region PUBLIC FUNCTIONS + private short[] ByteArrTo2Short(byte[] bytes) + { + short[] result = null; + + if (bytes != null) + { + int len = bytes[2]; + result = new short[len / 2]; + + for (int i = 0; i < result.Length; i++) + { + result[i] = (short)((bytes[3 + (i * 2) + 0] << 8) + bytes[3 + (i * 2) + 1]); + } + } + return result; + } + public void RecvUardData(byte[] data) + { + rData = data; + + if ((rData != null) && (rData.Length > 58)) + { + try + { + DataRow hRow = BmsHistoryTable.NewRow(); + + short[] shorts = ByteArrTo2Short(data); + + int pos = 0; + int yy, MM, dd, HH, mm, ss; + Int32 iDateTime = (rData[3 + 2] << 24) | (rData[3 + 3] << 16) | (rData[3 + 0] << 8) | (rData[3 + 1] << 0); + //Int32 iDateTime = (Int32)((shorts[pos + 1] << 16) | (shorts[pos + 0] << 0)); + yy = (iDateTime >> 26) & 0x003F; + MM = (iDateTime >> 22) & 0x000F; + dd = (iDateTime >> 17) & 0x001F; + HH = (iDateTime >> 12) & 0x001F; + mm = (iDateTime >> 6) & 0x003F; + ss = (iDateTime >> 0) & 0x003F; + + hRow["no"] = hist_no; + string stDateTime = string.Format("{0}-{1:00}-{2:00} {3:00}:{4:00}:{5:00}" + , yy + , MM + , dd + , HH + , mm + , ss + ); + + DateTime aDateTime = Convert.ToDateTime(stDateTime); + hRow["datetime"] = aDateTime; + + pos = 2; + hRow["status"] = shorts[pos++]; + hRow["warning"] = string.Format("{0:X4}", shorts[pos++]); + hRow["protect"] = string.Format("{0:X4}", shorts[pos++]); + hRow["error"] = string.Format("{0:X4}", shorts[pos++]); + hRow["voltage"] = string.Format("{0:0.00}", Convert.ToDouble(shorts[pos++]) / 100); + hRow["current"] = string.Format("{0:0.00}", Convert.ToDouble(shorts[pos++]) / 100); + hRow["SOC"] = string.Format("{0:0.0}", Convert.ToDouble(shorts[pos++]) / 1); + + // Temperature + for (int i = 0; i < 3; i++) + { + hRow[string.Format("temp_{0:00}", (i * 2) + 1)] = Convert.ToDouble((byte)(shorts[pos] >> 8)); + hRow[string.Format("temp_{0:00}", (i * 2) + 2)] = Convert.ToDouble((byte)(shorts[pos++] >> 0)); + } + // Cell Voltage + for (int i = 0; i < 16; i++) + { + hRow[string.Format("cell_v_{0:00}", i + 1)] = Convert.ToDouble(shorts[pos++]) / 1000; + } + hRow["SOH"] = string.Format("{0:0.0}", Convert.ToDouble(shorts[pos++]) / 1); + + BmsHistoryTable.Rows.Add(hRow); + } + catch (Exception e) + { + MessageBox.Show(e.Message); + } + } + gvBmsHistory.BestFitColumns(); + gvBmsHistory.ClearSelection(); + + hist_no++; + curr_addr += 0x20; + RequestHistoryData(curr_addr); + } + + #endregion + + #region BUTTON EVENT + + private void btnClose_Click(object sender, EventArgs e) + { + Close(); + } + + private void btnBmsHistoryReq_Click(object sender, EventArgs e) + { + if (stopReq) + { + BmsHistoryTable.Rows.Clear(); + + stopReq = false; + hist_no = 1; + curr_addr = 0x0200; + TmrCheckReq.Enabled = true; + + RequestHistoryData(curr_addr); + + btnBmsHistoryReq.Text = "STOP"; + } + else + { + stopReq = true; + //btnBmsHistoryReq.Text = "Request"; + //TmrCheckReq.Enabled = false; + } + } + + private void RequestHistoryData(ushort haddr) + { + byte[] crc; + ushort addr = haddr; + + // Normal mode --> Bootloader mode + byte[] sdata = new byte[8]; + sdata[0] = (byte)SystemId; // Dev Address + sdata[1] = 0x03; // Function Code + sdata[2] = (byte)(addr >> 8); // Address H + sdata[3] = (byte)(addr >> 0); // Address L + sdata[4] = 0x00; // Number of Register H + sdata[5] = 0x1D; // Number of Register L + + crc = csSerialCommFunction.GetCRC(sdata, 6); + + sdata[6] = crc[1]; // CRCH + sdata[7] = crc[0]; // CRCL + + if (stopReq == false) + { + OnSendUartData?.Invoke(addr, sdata, false, 1); + ReqDateTime = DateTime.Now; + } + } + + private void btnExportExcel_Click(object sender, EventArgs e) + { + SaveFileDialog sDialog = new SaveFileDialog(); + sDialog.Title = "Select save file"; + sDialog.DefaultExt = "xlsx"; + sDialog.Filter = "Excel files 2003 (*.xls)|*.xls|All files (*.*)|*.*"; + + if (sDialog.ShowDialog() == DialogResult.OK) + { + string filename = sDialog.FileName; + + try + { + csExcelExport.ExportToExcelExt(BmsHistoryTable, filename); + + MessageBox.Show("Complete Export Excel File", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + #endregion + + #region GRID DISPLAY + private void gvBmsHistory_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) + { + if (e.Column.FieldName == "status") + { + int status = Convert.ToInt32(e.Value); + switch (status) + { + case 0: + e.DisplayText = "Standby"; + break; + case 1: + e.DisplayText = "Charging"; + break; + case 2: + e.DisplayText = "Discharging"; + break; + case 4: + e.DisplayText = "Protect"; + break; + case 8: + e.DisplayText = "Charging-Lmt"; + break; + case 0x32: + e.DisplayText = "Power-On"; + break; + default: + e.DisplayText = string.Format("Unknown({0:X4})", status); + break; + } + } + } + #endregion + + #region TIMER EVENT + private void TmrCheckReq_Tick(object sender, EventArgs e) + { + DateTime nDateTime = ReqDateTime.AddSeconds(1); + + if (nDateTime < DateTime.Now) + { + TmrCheckReq.Enabled = false; + + MessageBox.Show("Finished BMS History Read", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information); + btnBmsHistoryReq.Text = "Request"; + } + } + #endregion + } +} diff --git a/LFP_Manager/Forms/fmxHistory.resx b/LFP_Manager/Forms/fmxHistory.resx new file mode 100644 index 0000000..2e52af4 --- /dev/null +++ b/LFP_Manager/Forms/fmxHistory.resx @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAABMxJREFUWEflVWtsFVUQPrdtSvilMRIVY8T4h1/aoDGKqIWCIBXR+IgaAmriD/CR + SIyVYjSSPmhLrVVTBa6tQNGIBSqYCEEera34KCqFEmgLNa34qPRaeqHv23G+2Z3tXrp3u/iHGCeZnN09 + M2e++WbOrKFLLP8dACMjI87qp2oTVAIBcB8Y8zncvRcUxEUxoIdGon3UdbbX0TPdvdR9vl/23HZBZFwA + euDQcEzedze00aSF79Ckx9+nKx8rc3Tyo2V0+GSn2AyzbVAgvgD0gFgsRsOsfQNDNPXZCjLpq8nc9xaZ + ucWW4vmuPJqZ9Rm8xDZIcEggBjT7VR8fJHNnLiUveNsKOr/EUn5Ovp+/MYhNe5vEFj5BWEgIQJ1BJ5qr + 5dcITcwsoZBmzIFDeBcA9jq7iK554gOK9PQJC8KEfVYiGbcEmv0Db1aTuTufkjKt7CXgvWu4BKw2C0lg + YUYevbTugPgM2iz4iScAzX5waFjePz/YSmZWgUWzBuJSLF+7nx7J3SlB5Rv2GMwEXrUhxyvFGABqiMaD + 87neAbrxqTCF5hRx9hbVoTlr6CrufDRly+kIpc4rpiQO6oCbWUDpWVvsJPxZGAsAyg5KffZHdXGNJ+s9 + +bRhz1HZh7xa8bU0oGMDEPxeufeY7PuxEAdAjfQeH2/vsrJj9coOB6PRengITVmyXpjRxgzZDfk3Dy3Y + gFGN4RbPEgAAZP7r26zGc+rL2fEt+Kn1TweA9smWmuNim8pDCgxgxfsKZgeiLFwoDgBs6qGQ7fUtdtcn + 6HAOjMxgj17AikFk0t7gkuWRmZ5L5o4cMrfnUE1jB9uOMusGIgD0g0w8NoqeH6Api9eTySi06LQpvW7R + Ojp7rl8Cs5P4uAX/hWwGmF1RJ5mv3FBHr5Tto+pvWmXfi4U4BpTOrPLa+KuFldn4lGmGACSGTUPzH7Tn + 0C9UsfsIlWxtoPCXjfTF96dox7etcnWhO787SZ981UT1TactXwbvZsHoi9JztO0vuceotwTH4OGun51d + JVmrHcB2MxsdnT104HA7vcYZX79orVUCph2ApRQzuBTTc+jyh96l385ExzQkA7AecDAkY0UVB1w9mj0r + bsKRtk4ZyQrAS/C9fFcjXc1/RsNzI3VhKaXwORMetBpycfEusXOXgksw2nib9x3j+5vvTDy511wK3HMI + slZHrKrICnua2YmOCE19+kOrh7SJsc4qpP0/t4uNgjB4wAGo6bVPMoUZRaONx1ncsCRMUZ6GsIFCFARE + QejzwOCQPDfzz+syvopJ87SUDCC9gG5etpFt+AZxXAA2vf2Ww3LuXtTMoR4OXPtt9c2yr9m7g7tF9uy1 + 3wZRWv3j2Gbm95Lth2Qf11duQeOpTmm8FM4agVMWlErN5q7cKoZe18dL1AaZwQd609KNMj1RTpydzP10 + xcPv0e9dUbbjEuBeT3u+0upcrhmMETyFJ96Jjq64xgsKAmqBJqrlISQ3gumXs3memNtWUSZPWYjJCtdS + 2nObaNoLlQLk1hc3Uxo3UGHVD2Lg1/V+Ah/tmZfDNZT2TLmcjRi3sCLmDvzmUYdEguw1+MWAcPv4+aH/ + nFGMYKryzvVR8TskkaiPnuUVA+JMQi+F6Ppv5MLzvNT5F1wq+b8DIPoHjJf5qaq9hPwAAAAASUVORK5C + YII= + + + \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxInventoryConfig.Designer.cs b/LFP_Manager/Forms/fmxInventoryConfig.Designer.cs new file mode 100644 index 0000000..5e4eae1 --- /dev/null +++ b/LFP_Manager/Forms/fmxInventoryConfig.Designer.cs @@ -0,0 +1,454 @@ +namespace LFP_Manager.Forms +{ + partial class fmxInventoryConfig + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxInventoryConfig)); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.btnClose = new DevExpress.XtraEditors.SimpleButton(); + this.gbSerialNo = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl(); + this.nSerialNo = new DevExpress.XtraEditors.TextEdit(); + this.lbSerialNo = new DevExpress.XtraEditors.LabelControl(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + this.gbMDate = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl(); + this.lbMDate = new DevExpress.XtraEditors.LabelControl(); + this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem(); + this.Root = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.tmrDisplay = new System.Windows.Forms.Timer(this.components); + this.nManuDate = new DevExpress.XtraEditors.TextEdit(); + this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem(); + this.BtnManuDateWrite = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem(); + this.BtnSerialNoWrite = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.gbSerialNo)).BeginInit(); + this.gbSerialNo.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit(); + this.layoutControl2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nSerialNo.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbMDate)).BeginInit(); + this.gbMDate.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit(); + this.layoutControl3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nManuDate.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.btnClose); + this.layoutControl1.Controls.Add(this.gbSerialNo); + this.layoutControl1.Controls.Add(this.gbMDate); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(999, 164, 650, 400); + this.layoutControl1.Root = this.Root; + this.layoutControl1.Size = new System.Drawing.Size(720, 425); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // btnClose + // + this.btnClose.Appearance.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btnClose.Appearance.Options.UseFont = true; + this.btnClose.Location = new System.Drawing.Point(4, 373); + this.btnClose.Name = "btnClose"; + this.btnClose.Size = new System.Drawing.Size(712, 48); + this.btnClose.StyleController = this.layoutControl1; + this.btnClose.TabIndex = 7; + this.btnClose.Text = "Close"; + this.btnClose.Click += new System.EventHandler(this.btnClose_Click); + // + // gbSerialNo + // + this.gbSerialNo.Controls.Add(this.layoutControl2); + this.gbSerialNo.Location = new System.Drawing.Point(4, 174); + this.gbSerialNo.Name = "gbSerialNo"; + this.gbSerialNo.Size = new System.Drawing.Size(712, 165); + this.gbSerialNo.TabIndex = 5; + this.gbSerialNo.Text = "Serial Number"; + // + // layoutControl2 + // + this.layoutControl2.Controls.Add(this.BtnSerialNoWrite); + this.layoutControl2.Controls.Add(this.nSerialNo); + this.layoutControl2.Controls.Add(this.lbSerialNo); + this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl2.Location = new System.Drawing.Point(2, 23); + this.layoutControl2.Name = "layoutControl2"; + this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(993, 64, 650, 400); + this.layoutControl2.Root = this.layoutControlGroup1; + this.layoutControl2.Size = new System.Drawing.Size(708, 140); + this.layoutControl2.TabIndex = 0; + this.layoutControl2.Text = "layoutControl2"; + // + // nSerialNo + // + this.nSerialNo.Location = new System.Drawing.Point(7, 70); + this.nSerialNo.Name = "nSerialNo"; + this.nSerialNo.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 36F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.nSerialNo.Properties.Appearance.Options.UseFont = true; + this.nSerialNo.Properties.Appearance.Options.UseTextOptions = true; + this.nSerialNo.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.nSerialNo.Properties.MaxLength = 16; + this.nSerialNo.Size = new System.Drawing.Size(605, 64); + this.nSerialNo.StyleController = this.layoutControl2; + this.nSerialNo.TabIndex = 5; + // + // lbSerialNo + // + this.lbSerialNo.Appearance.Font = new System.Drawing.Font("Tahoma", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbSerialNo.Appearance.Options.UseFont = true; + this.lbSerialNo.Location = new System.Drawing.Point(7, 7); + this.lbSerialNo.Name = "lbSerialNo"; + this.lbSerialNo.Size = new System.Drawing.Size(694, 59); + this.lbSerialNo.StyleController = this.layoutControl2; + this.lbSerialNo.TabIndex = 4; + this.lbSerialNo.Text = "Serial No:"; + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "Root"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem3, + this.layoutControlItem4, + this.layoutControlItem10}); + this.layoutControlGroup1.Name = "Root"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5); + this.layoutControlGroup1.Size = new System.Drawing.Size(708, 140); + this.layoutControlGroup1.TextVisible = false; + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.lbSerialNo; + this.layoutControlItem3.CustomizationFormText = "layoutControlItem3"; + this.layoutControlItem3.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem3.MinSize = new System.Drawing.Size(74, 18); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(698, 63); + this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextVisible = false; + // + // layoutControlItem4 + // + this.layoutControlItem4.Control = this.nSerialNo; + this.layoutControlItem4.CustomizationFormText = "layoutControlItem4"; + this.layoutControlItem4.Location = new System.Drawing.Point(0, 63); + this.layoutControlItem4.MaxSize = new System.Drawing.Size(0, 67); + this.layoutControlItem4.MinSize = new System.Drawing.Size(171, 67); + this.layoutControlItem4.Name = "layoutControlItem4"; + this.layoutControlItem4.Size = new System.Drawing.Size(609, 67); + this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem4.TextVisible = false; + // + // gbMDate + // + this.gbMDate.Controls.Add(this.layoutControl3); + this.gbMDate.Location = new System.Drawing.Point(4, 4); + this.gbMDate.Name = "gbMDate"; + this.gbMDate.Size = new System.Drawing.Size(712, 166); + this.gbMDate.TabIndex = 4; + this.gbMDate.Text = "Manufacture Date"; + // + // layoutControl3 + // + this.layoutControl3.Controls.Add(this.BtnManuDateWrite); + this.layoutControl3.Controls.Add(this.nManuDate); + this.layoutControl3.Controls.Add(this.lbMDate); + this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl3.Location = new System.Drawing.Point(2, 23); + this.layoutControl3.Name = "layoutControl3"; + this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(993, 0, 650, 400); + this.layoutControl3.Root = this.layoutControlGroup2; + this.layoutControl3.Size = new System.Drawing.Size(708, 141); + this.layoutControl3.TabIndex = 0; + this.layoutControl3.Text = "layoutControl3"; + // + // lbMDate + // + this.lbMDate.Appearance.Font = new System.Drawing.Font("Tahoma", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbMDate.Appearance.Options.UseFont = true; + this.lbMDate.Location = new System.Drawing.Point(7, 7); + this.lbMDate.Name = "lbMDate"; + this.lbMDate.Size = new System.Drawing.Size(694, 59); + this.lbMDate.StyleController = this.layoutControl3; + this.lbMDate.TabIndex = 6; + this.lbMDate.Text = "Manufacture Date:"; + // + // layoutControlGroup2 + // + this.layoutControlGroup2.CustomizationFormText = "Root"; + this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup2.GroupBordersVisible = false; + this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem9, + this.layoutControlItem7, + this.layoutControlItem8}); + this.layoutControlGroup2.Name = "Root"; + this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(5, 5, 5, 5); + this.layoutControlGroup2.Size = new System.Drawing.Size(708, 141); + this.layoutControlGroup2.TextVisible = false; + // + // layoutControlItem9 + // + this.layoutControlItem9.Control = this.lbMDate; + this.layoutControlItem9.CustomizationFormText = "layoutControlItem9"; + this.layoutControlItem9.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem9.MinSize = new System.Drawing.Size(74, 18); + this.layoutControlItem9.Name = "layoutControlItem9"; + this.layoutControlItem9.Size = new System.Drawing.Size(698, 63); + this.layoutControlItem9.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem9.TextVisible = false; + // + // Root + // + this.Root.CustomizationFormText = "Root"; + this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.Root.GroupBordersVisible = false; + this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem1, + this.layoutControlItem2, + this.layoutControlItem6, + this.emptySpaceItem1}); + this.Root.Name = "Root"; + this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2); + this.Root.Size = new System.Drawing.Size(720, 425); + this.Root.TextVisible = false; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.gbMDate; + this.layoutControlItem1.CustomizationFormText = "layoutControlItem1"; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(716, 170); + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.gbSerialNo; + this.layoutControlItem2.CustomizationFormText = "layoutControlItem2"; + this.layoutControlItem2.Location = new System.Drawing.Point(0, 170); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(716, 169); + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.btnClose; + this.layoutControlItem6.CustomizationFormText = "layoutControlItem6"; + this.layoutControlItem6.Location = new System.Drawing.Point(0, 369); + this.layoutControlItem6.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(716, 52); + this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem6.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1"; + this.emptySpaceItem1.Location = new System.Drawing.Point(0, 339); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(716, 30); + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // tmrDisplay + // + this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick); + // + // nManuDate + // + this.nManuDate.Location = new System.Drawing.Point(7, 70); + this.nManuDate.Name = "nManuDate"; + this.nManuDate.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 36F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.nManuDate.Properties.Appearance.Options.UseFont = true; + this.nManuDate.Properties.Appearance.Options.UseTextOptions = true; + this.nManuDate.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.nManuDate.Properties.MaxLength = 8; + this.nManuDate.Size = new System.Drawing.Size(605, 64); + this.nManuDate.StyleController = this.layoutControl3; + this.nManuDate.TabIndex = 7; + // + // layoutControlItem7 + // + this.layoutControlItem7.Control = this.nManuDate; + this.layoutControlItem7.Location = new System.Drawing.Point(0, 63); + this.layoutControlItem7.Name = "layoutControlItem7"; + this.layoutControlItem7.Size = new System.Drawing.Size(609, 68); + this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem7.TextVisible = false; + // + // BtnManuDateWrite + // + this.BtnManuDateWrite.Appearance.Font = new System.Drawing.Font("Tahoma", 10F); + this.BtnManuDateWrite.Appearance.Options.UseFont = true; + this.BtnManuDateWrite.Location = new System.Drawing.Point(616, 70); + this.BtnManuDateWrite.Name = "BtnManuDateWrite"; + this.BtnManuDateWrite.Size = new System.Drawing.Size(85, 64); + this.BtnManuDateWrite.StyleController = this.layoutControl3; + this.BtnManuDateWrite.TabIndex = 8; + this.BtnManuDateWrite.Text = "Apply"; + this.BtnManuDateWrite.Click += new System.EventHandler(this.BtnManuDateWrite_Click); + // + // layoutControlItem8 + // + this.layoutControlItem8.Control = this.BtnManuDateWrite; + this.layoutControlItem8.Location = new System.Drawing.Point(609, 63); + this.layoutControlItem8.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem8.Name = "layoutControlItem8"; + this.layoutControlItem8.Size = new System.Drawing.Size(89, 68); + this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem8.TextVisible = false; + // + // BtnSerialNoWrite + // + this.BtnSerialNoWrite.Appearance.Font = new System.Drawing.Font("Tahoma", 10F); + this.BtnSerialNoWrite.Appearance.Options.UseFont = true; + this.BtnSerialNoWrite.Location = new System.Drawing.Point(616, 70); + this.BtnSerialNoWrite.Name = "BtnSerialNoWrite"; + this.BtnSerialNoWrite.Size = new System.Drawing.Size(85, 63); + this.BtnSerialNoWrite.StyleController = this.layoutControl2; + this.BtnSerialNoWrite.TabIndex = 6; + this.BtnSerialNoWrite.Text = "Apply"; + this.BtnSerialNoWrite.Click += new System.EventHandler(this.BtnSerialNoWrite_Click); + // + // layoutControlItem10 + // + this.layoutControlItem10.Control = this.BtnSerialNoWrite; + this.layoutControlItem10.Location = new System.Drawing.Point(609, 63); + this.layoutControlItem10.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem10.Name = "layoutControlItem10"; + this.layoutControlItem10.Size = new System.Drawing.Size(89, 67); + this.layoutControlItem10.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem10.TextVisible = false; + // + // fmxInventoryConfig + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(720, 425); + this.Controls.Add(this.layoutControl1); + this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxInventoryConfig.IconOptions.Icon"))); + this.Name = "fmxInventoryConfig"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Inventory Config"; + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.gbSerialNo)).EndInit(); + this.gbSerialNo.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit(); + this.layoutControl2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.nSerialNo.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbMDate)).EndInit(); + this.gbMDate.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit(); + this.layoutControl3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nManuDate.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private DevExpress.XtraEditors.GroupControl gbMDate; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraEditors.GroupControl gbSerialNo; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.LayoutControl layoutControl2; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraEditors.TextEdit nSerialNo; + private DevExpress.XtraEditors.LabelControl lbSerialNo; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private DevExpress.XtraEditors.SimpleButton btnClose; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private System.Windows.Forms.Timer tmrDisplay; + private DevExpress.XtraLayout.LayoutControl layoutControl3; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraEditors.LabelControl lbMDate; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9; + private DevExpress.XtraEditors.SimpleButton BtnManuDateWrite; + private DevExpress.XtraEditors.TextEdit nManuDate; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8; + private DevExpress.XtraEditors.SimpleButton BtnSerialNoWrite; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10; + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxInventoryConfig.cs b/LFP_Manager/Forms/fmxInventoryConfig.cs new file mode 100644 index 0000000..972352a --- /dev/null +++ b/LFP_Manager/Forms/fmxInventoryConfig.cs @@ -0,0 +1,231 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; +using DevExpress.XtraEditors; + +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Controls; +using LFP_Manager.Utils; + +namespace LFP_Manager.Forms +{ + public delegate void InvDataUpdateEvent(object sendor); + public delegate void InvDateCmdEvent(int sId, int mode, int index, int flag, ref DeviceInforation wData); + public delegate void InvDateCmdEventBySnmp(int mode, string wData); + + public partial class fmxInventoryConfig : DevExpress.XtraEditors.XtraForm + { + #region VARIABLES + + int SystemId = 0; + int CmdResult = 0; + CommConfig Config; + DeviceSystemData SystemData; + DeviceInforation wInvData; + + public event InvDataUpdateEvent OnUpdate = null; + public event InvDateCmdEvent OnCommand = null; + + public event SendDataUartEvent OnSendUartData = null; + + #endregion + + #region CONSTRUCTORS + public fmxInventoryConfig() + { + InitializeComponent(); + } + public fmxInventoryConfig(int sId, ref CommConfig aConfig, ref DeviceSystemData aSystemData) + { + InitializeComponent(); + + SystemId = sId; + SystemData = aSystemData; + Config = aConfig; + + switch (Config.CommType) + { + case csConstData.CommType.COMM_UART: + nManuDate.Enabled = true; + BtnManuDateWrite.Enabled = true; + nSerialNo.Enabled = true; + BtnSerialNoWrite.Enabled = true; + break; + case csConstData.CommType.COMM_RS485: + nManuDate.Enabled = false; + BtnManuDateWrite.Enabled = false; + nSerialNo.Enabled = false; + BtnSerialNoWrite.Enabled = false; + break; + case csConstData.CommType.COMM_SNMP: + nManuDate.Enabled = false; + BtnManuDateWrite.Enabled = false; + nSerialNo.Enabled = false; + BtnSerialNoWrite.Enabled = false; + break; + default: + break; + } + + tmrDisplay.Enabled = true; + } + #endregion + + #region INIT DATA + void InitData() + { + wInvData = new DeviceInforation + { + BMS_SN = new byte[16], + Module_SN = new byte[24] + }; //22.06.30 Byul 32->16, 32->24 + } + #endregion + + #region DISPLAY DATA + + private void DisplayValue() + { + // Manufacture Date + lbMDate.Text = String.Format("Manufacture Date: {0}", SystemData.Information.ManufacturingDate); + + // Device Address% + lbSerialNo.Text = String.Format("Serial No: {0}", SystemData.Information.HwSerialNumber); + } + #endregion + + #region TIMER ENVENT + private void tmrDisplay_Tick(object sender, EventArgs e) + { + DisplayValue(); + if (OnUpdate != null) + { + OnUpdate(this); + } + } + #endregion + + #region PUBLIC FUCTIONS + public void UpdateData(ref DeviceSystemData aSystemData) + { + SystemData = aSystemData; + } + + public void RecvData(string result, bool error) + { + Cmd_Result(result, error); + } + + public void Cmd_Result(string result, bool error) + { + if (this.InvokeRequired) + { + this.Invoke(new MethodInvoker(delegate () + { + if (error) + MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error); + else + MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information); + })); + } + else + { + if (error) + MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Error); + else + MessageBox.Show(result, "Result", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + + #endregion + + #region BUTTON EVENT + + private void btnClose_Click(object sender, EventArgs e) + { + Close(); + } + + private void BtnManuDateWrite_Click(object sender, EventArgs e) + { + if ((nManuDate.Text == "") || (nManuDate.Text.Length > 8)) + { + MessageBox.Show("Check Manufacture Date Format", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + byte[] crc; + ushort addr = 0x00A3; + int i = 0; + // Normal mode --> Bootloader mode + byte[] sdata = new byte[7 + 8 + 2]; + sdata[i++] = (byte)SystemId; // Dev Address + sdata[i++] = 0x10; // Function Code + sdata[i++] = (byte)(addr >> 8); // Address H + sdata[i++] = (byte)(addr >> 0); // Address L + sdata[i++] = 0x00; // Number of Register H + sdata[i++] = 0x04; // Number of Register L + sdata[i++] = 0x08; // Byte Count + + string str = nManuDate.Text; + byte[] aData = Encoding.UTF8.GetBytes(str); + + for (int j = 0; j < 8; j++) + { + sdata[i++] = aData[j]; + } + crc = csSerialCommFunction.GetCRC(sdata, i); + + sdata[i++] = crc[1]; // CRCH + sdata[i++] = crc[0]; // CRCL + + OnSendUartData?.Invoke(addr, sdata, false, 1); + } + + private void BtnSerialNoWrite_Click(object sender, EventArgs e) + { + if ((nSerialNo.Text == "") || (nSerialNo.Text.Length > 16)) + { + MessageBox.Show("Check Serial Number format", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + byte[] crc; + ushort addr = 0x0078; + int i = 0; + // Normal mode --> Bootloader mode + byte[] sdata = new byte[7 + 16 + 2]; + sdata[i++] = (byte)SystemId; // Dev Address + sdata[i++] = 0x10; // Function Code + sdata[i++] = (byte)(addr >> 8); // Address H + sdata[i++] = (byte)(addr >> 0); // Address L + sdata[i++] = 0x00; // Number of Register H + sdata[i++] = 0x08; // Number of Register L + sdata[i++] = 0x10; // Byte Count + + string str = nSerialNo.Text; + byte[] aData = Encoding.UTF8.GetBytes(str); + + for (int j = 0; j < aData.Length; j++) + { + sdata[i + j] = aData[j]; + } + i += 16; + crc = csSerialCommFunction.GetCRC(sdata, i); + + sdata[i++] = crc[1]; // CRCH + sdata[i++] = crc[0]; // CRCL + + OnSendUartData?.Invoke(addr, sdata, false, 1); + } + + #endregion + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxInventoryConfig.resx b/LFP_Manager/Forms/fmxInventoryConfig.resx new file mode 100644 index 0000000..eefd1cf --- /dev/null +++ b/LFP_Manager/Forms/fmxInventoryConfig.resx @@ -0,0 +1,4574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA + GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/ + ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7///////////////////// + ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff///////// + ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+ + /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7///// + ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc + x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7///////////////////////////// + ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt + e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP + SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7///////// + ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z + WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS + Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8 + +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+ + /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+ + /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO + SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz + 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o + 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9 + /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE + oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG + PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7///// + ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH + PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t + 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/ + ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/ + ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7///////////////////////////// + ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+ + /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ + TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7///////////////// + ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ + TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+ + /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7///// + ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP + SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7///////////////////////////////////////// + ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/ + ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/ + ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7///////////////////////////// + ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/ + ///+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////+/v7////////+/v3////////////////////////+/v3////////+/v7///////////////// + ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7///////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + /////////v7+/v7///////////////////////////////////////////////////////////////// + ///////////////////////////+/v7////////+/v7///////////////////////////////////// + ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7///////////////////// + ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7 + +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9 + /Pz+/v7///////////////////////////////////////////////////////////////////////// + ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM + RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7///////////////////////////////////// + ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL + QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+ + /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP + SgCOSQCPTAKFOwDVvaT////9/Pv+/v7///////////////////////////////////////////////// + ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8 + +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7///////// + /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO + SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF + OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+ + ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/ + //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7///////////////////////// + ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/ + mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79 + /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN + RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ + TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7///// + ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7///// + ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+ + /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ + TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP + SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH + PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/ + ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5 + 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+ + /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ + QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE + oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/ + ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7///////////////////////// + ///////////////////////////////////////////////////////+/v7+//////////////////// + ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+ + /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9 + /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP + SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL + RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7///////////////////////////////// + ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/ + ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7///////// + ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP + SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI + PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/ + ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x + glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7///////////////////////////// + ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM + RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+ + /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/ + ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP + SgCOSgGLRQGTURDz7ef+/v39/f3+/v7///////////////////////////////////////////////// + ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+ + /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7///////////// + ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN + RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9 + /fz9/f3+/v7+/v7///////////////////////////////////////////////////////////////// + ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO + SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7///////////////////////////////////////// + ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO + SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7///// + //////////////////////////////////////////////////////////////////////////////// + ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS + UA/y6+X+/v39/fz+/v7+/v7///////////////////////////////////////////////////////// + ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP + SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7///////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+ + /v7///////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO + SQCOSQGJQQDi0cD////9/Pv+/v7///////////////////////////////////////////////////// + ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J + QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39 + /fz+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz + hFazhFayhFazhVete1TWvqb////9/fz+/v7///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7///////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+ + /f3+/f3///////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v7+//////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////v7+ + /f39//////////////////////////////////////////////////////////////////////////// + ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39 + /fz8/v79/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA + nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1//// + x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV + i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC + jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC + hz8Ap3I//fz7/fz8/v79/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7 + /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8 + +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p + /v39/f38/v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+ + ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb + 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//7+/f39 + /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7//// + 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+ + /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA + j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB + j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB + i0UAlVYZ8+3m/f79/f38/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+//////////////// + /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39 + /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+ + sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+ + /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+//////// + /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+ + /f39/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO + /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39 + 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39 + /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+//////////////////////////// + /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+//// + /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A + kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + jkoCikIC4tHA/////Pv7/v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC + hz4A1r6m/////Pz7/v7+/v7+/////v7+//////////////////////////////////////////////// + /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+ + /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+//////////////////// + /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM + /////Pv6/v7+/v7+/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA + j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+//////////////////////////////////////// + /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+ + /v7+/v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+ + /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7 + /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq//// + /Pv6/v7+/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A + j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA + kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA + j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6 + /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+//////// + /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+ + /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA + xaJ//////Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU + /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA + j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+//////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+//////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+//////////// + 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+ + /////v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39 + /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/ + /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6 + ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+ + /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC + kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB + kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39//// + /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA + hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA + iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A + j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU + z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+//////// + /v7+/////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7//v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn + +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3 + +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8 + /fz8/v7+/////v7+/////v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v///v7+/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT + z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7 + ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A + hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A + fS0AtIdb/f38/Pz8///+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D + kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL + jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+//////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA + jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3 + iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA + jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA + jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK + 6t7S/v7+/fz8/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+//////////////////////// + /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs//// + /Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7 + /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38 + /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fz8 + /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+//////////////////////////////////// + /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+ + /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA + jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A + pnA8/Pv6/fz7/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq + iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+ + /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+//////////// + /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+ + //7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A + 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES + jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+//////////////// + /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6 + /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7 + /v79/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v39 + /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8 + +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+ + /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ + hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ + 8+3m/f39/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+ + /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA + jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA + u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA + j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA + jkkCikQE49PC/v7//fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8 + /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+ + /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7//// + t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA + jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU + hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD + /////fz8//7//v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA + oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC + hj0Az7SX/////fz7//7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//7+ + /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH + jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA + jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT//// + /Pz8/v7//v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA + t4tf/////fz7/v7+/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs + mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6 + /v7+/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v7+ + /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx + +/n3/fz8/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+ + rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA + jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW + k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV + kU8TmVoj8ejg/v39/fz7/v7//f39/v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off + 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v////7+/v7+/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v39/v7+ + ///+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v////// + /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v79/////////v7+/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v79/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////9/Lt9/Pu + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2svnmMrzrGR/////fz7//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ + /v39/fz8/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h + /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0//// + 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC + j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + jUgBlFIO7uTa/////f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB + jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7 + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+ + /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38//////////////////// + /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z + iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+ + sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG//// + /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + hz4Ar35J/v39/fz8/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+//////// + /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38//////////////////////////////// + /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+//////////////////////////////////////////// + /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA + /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW + k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+ + /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+//////////////////// + /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iEAA176j/////fz7//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39//////////////////////////////////////////// + ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38 + /fz8/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEA1buf/////fz8/v7+/v7+//////////////////////////////////////////////////////// + /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+ + /////////////////////////////////////////////////////////////////////////////v7+ + /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+//////////// + /////////////////////////////////////////////////////////////////////fz7////yKaB + hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v///f38////sH9K + hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+//////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oBi0QAnmIj9vHs/v39/v39//////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA + nWAf9vHs/v7+/v79//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo//// + /fz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v///f38//// + 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8//////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/v79+/n3omor + ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm + +PTw/v39/f39//////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sBjEUAmVwb9e/p/v7+/f38//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A + vpVq/////fz7/v/+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8AyKaB/////fz7/v///v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39 + //7///////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC + jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsCiD8Auo9h/////fz8/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE + iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB + 4tC+/////f38/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjUcBk1EN7+Xb/////f39/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj + n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f38////u5Jlhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkBjUgE4M66/////fz7/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR + 7+bd/v7+/f39//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv + +/n4/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0 + rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6 + ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC + hz4AtolZ/////fz8/v3+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA + j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + j0sBikIApGww+vj1/v39/f39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ + j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M + /////Pz7/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkCjkkG4c+7/////fz7/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+///+/v39 + /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d//// + /fz7/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/f38/f38 + 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A + jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sBiD8AyKiE/////fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oBiUEApW4z+vj1/v39/v39//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ + /v7+/f38/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4 + 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD + 49PB/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/Pz7//// + 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6//// + /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A + j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC + iUEAqHQ7+/j2/fz8/v39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jUgBkk8K7ODV/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL//// + /f38/v7+///+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6//////// + ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A + ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38 + /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBiUEA1Lqd/////fv6//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38 + sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+//////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////v7+/v39 + /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq + 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38 + /v39/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjUgBkU4J6NrM/////fz8//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA + jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEArnxG/v7+/f38/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO + 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i//// + /Pz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA + hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39//////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr + vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g + 4M24/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY + llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+//////////////////////////// + /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsCiUEArXpD/v7//f39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB + ikMA1bqf/////fz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39 + /f38/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39 + /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/////////v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI + iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8//// + /fz8//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA + mVsZ8+zl/v38/fz8//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7 + /v7+//7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz7/v7+ + 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf + 9vHs/v79/fz8//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z + iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAi0YAl1gT8+3l/v7+/f39//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA + upFj/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC + hz4AwZty/////fz8/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////f39 + /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC + jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ + hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsChz4At4ta/////fz8/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjUgCkEwL6dzO/////fz7//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD + 38y3/////fz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v/+/f39/v79 + +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////fz8 + /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A + kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK + 5tbG/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBjUcB4M25/////f38/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos + +PTw/fz8/f39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA + kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB + iUAAq3dA/Pr4/fz7/f39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v///fz7 + ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA + j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0oBikMAomgq+vf0/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////Pz7////4M24 + i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiUEA0rea/////fz7/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7 + /v38/v39/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////f38/v79 + +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/f38 + ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + kEwChz4AxaJ8/////fz7/v7+//////////////////////////////////////////////////////// + ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA + 07mb/////Pz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU + /v7+/Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+//// + //////////////////////////////////////////////////////////////////////////////7/ + /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7///////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+//////////////////////////// + /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jEQAm10b9O/p/v7+/f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+//////////////////////////////////////// + /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7 + /v7//v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jUgAklAK6dzO/////f38/v////////////////////////////////////////////////////////// + /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6 + /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng + lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+ + /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiD8Au5Jl/////fz8/v7+//7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+//////////////////// + /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj + /v39/fz8/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+//////////////////////////// + /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8 + ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb//// + /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A + upFj/////fz8/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+ + /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7//////////////////////// + /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf + llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA + kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkBjUcA49LA/////f38/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79 + /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3 + qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8////0baX + iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD + /////fz8/v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA + nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA + qHI4/Pv5/v39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+ + iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + kEsChz8Az7KS/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7 + /v39/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v39 + /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////fz8////59jIj0oD + jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ + /////fz8//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB + llYW7+Xb/v7+/f38/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0wChz8AuIxc/v7+/fz7/v39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+ + /v39/v////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fv6 + ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAjkkBjEYA4M24/////fz8/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa + /////f38//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v39/fz7 + 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB + jUcE3sq2/////Pz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oBikMAomgq+fXy/v39/f39//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/fz7//// + 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq + +vf1/f38/f39//7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39 + tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS + yqqM38u2/////v79/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/v79//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v79/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxMain.Designer.cs b/LFP_Manager/Forms/fmxMain.Designer.cs new file mode 100644 index 0000000..d33675f --- /dev/null +++ b/LFP_Manager/Forms/fmxMain.Designer.cs @@ -0,0 +1,470 @@ +namespace LFP_Manager.Forms +{ + partial class fmxMain + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxMain)); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.chbPolling = new DevExpress.XtraEditors.CheckEdit(); + this.edModuleID = new DevExpress.XtraEditors.TextEdit(); + this.statusStrip1 = new System.Windows.Forms.StatusStrip(); + this.CommStatusBar = new System.Windows.Forms.ToolStripStatusLabel(); + this.HeatBeatStatusBar = new System.Windows.Forms.ToolStripStatusLabel(); + this.LogStatusBar = new System.Windows.Forms.ToolStripStatusLabel(); + this.uDataLog = new LFP_Manager.Controls.ucDataLog(); + this.uEventLog = new LFP_Manager.Controls.ucEventLog(); + this.tabStatus = new DevExpress.XtraTab.XtraTabControl(); + this.pgMain = new DevExpress.XtraTab.XtraTabPage(); + this.uTarget = new LFP_Manager.Controls.ucTargetControl(); + this.layoutControlMain = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcitemSystemId = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem16 = new DevExpress.XtraLayout.LayoutControlItem(); + this.tmrDisplay = new System.Windows.Forms.Timer(this.components); + this.mnMain = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.levelConfigToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.changeLeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.changePasswordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.historyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.historyViewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.inventoryViewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.updateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.firmwareUpdateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.chbPolling.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.edModuleID.Properties)).BeginInit(); + this.statusStrip1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.tabStatus)).BeginInit(); + this.tabStatus.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlMain)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemSystemId)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).BeginInit(); + this.mnMain.SuspendLayout(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.AllowCustomization = false; + this.layoutControl1.Controls.Add(this.chbPolling); + this.layoutControl1.Controls.Add(this.edModuleID); + this.layoutControl1.Controls.Add(this.statusStrip1); + this.layoutControl1.Controls.Add(this.uDataLog); + this.layoutControl1.Controls.Add(this.uEventLog); + this.layoutControl1.Controls.Add(this.tabStatus); + this.layoutControl1.Controls.Add(this.uTarget); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 24); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(577, 118, 783, 350); + this.layoutControl1.Root = this.layoutControlMain; + this.layoutControl1.Size = new System.Drawing.Size(1314, 857); + this.layoutControl1.TabIndex = 1; + this.layoutControl1.Text = "layoutControl1"; + // + // chbPolling + // + this.chbPolling.Location = new System.Drawing.Point(1254, 660); + this.chbPolling.Name = "chbPolling"; + this.chbPolling.Properties.Caption = "Polling"; + this.chbPolling.Size = new System.Drawing.Size(57, 20); + this.chbPolling.StyleController = this.layoutControl1; + this.chbPolling.TabIndex = 5; + this.chbPolling.CheckedChanged += new System.EventHandler(this.chbPolling_CheckedChanged); + // + // edModuleID + // + this.edModuleID.EditValue = "1"; + this.edModuleID.Location = new System.Drawing.Point(1181, 660); + this.edModuleID.Name = "edModuleID"; + this.edModuleID.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 10F); + this.edModuleID.Properties.Appearance.Options.UseFont = true; + this.edModuleID.Properties.Appearance.Options.UseTextOptions = true; + this.edModuleID.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.edModuleID.Size = new System.Drawing.Size(69, 22); + this.edModuleID.StyleController = this.layoutControl1; + this.edModuleID.TabIndex = 4; + this.edModuleID.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.edSystemId_KeyPress); + // + // statusStrip1 + // + this.statusStrip1.AutoSize = false; + this.statusStrip1.Dock = System.Windows.Forms.DockStyle.None; + this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.CommStatusBar, + this.HeatBeatStatusBar, + this.LogStatusBar}); + this.statusStrip1.Location = new System.Drawing.Point(3, 834); + this.statusStrip1.Name = "statusStrip1"; + this.statusStrip1.Size = new System.Drawing.Size(1308, 20); + this.statusStrip1.TabIndex = 1; + this.statusStrip1.Text = "statusStrip1"; + // + // CommStatusBar + // + this.CommStatusBar.AutoSize = false; + this.CommStatusBar.ForeColor = System.Drawing.Color.Black; + this.CommStatusBar.Name = "CommStatusBar"; + this.CommStatusBar.Size = new System.Drawing.Size(200, 15); + this.CommStatusBar.Text = "Comm: OFF"; + this.CommStatusBar.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // HeatBeatStatusBar + // + this.HeatBeatStatusBar.AutoSize = false; + this.HeatBeatStatusBar.ForeColor = System.Drawing.Color.Black; + this.HeatBeatStatusBar.Name = "HeatBeatStatusBar"; + this.HeatBeatStatusBar.Size = new System.Drawing.Size(200, 15); + this.HeatBeatStatusBar.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // LogStatusBar + // + this.LogStatusBar.AutoSize = false; + this.LogStatusBar.Name = "LogStatusBar"; + this.LogStatusBar.Size = new System.Drawing.Size(650, 15); + this.LogStatusBar.Text = "Log Stop"; + this.LogStatusBar.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // uDataLog + // + this.uDataLog.Location = new System.Drawing.Point(1149, 686); + this.uDataLog.Name = "uDataLog"; + this.uDataLog.Size = new System.Drawing.Size(162, 144); + this.uDataLog.TabIndex = 6; + // + // uEventLog + // + this.uEventLog.Location = new System.Drawing.Point(3, 660); + this.uEventLog.Name = "uEventLog"; + this.uEventLog.Size = new System.Drawing.Size(1142, 170); + this.uEventLog.TabIndex = 3; + // + // tabStatus + // + this.tabStatus.Location = new System.Drawing.Point(3, 68); + this.tabStatus.Name = "tabStatus"; + this.tabStatus.SelectedTabPage = this.pgMain; + this.tabStatus.Size = new System.Drawing.Size(1308, 588); + this.tabStatus.TabIndex = 2; + this.tabStatus.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] { + this.pgMain}); + // + // pgMain + // + this.pgMain.Name = "pgMain"; + this.pgMain.Size = new System.Drawing.Size(1306, 562); + this.pgMain.Text = "RealTime Data"; + // + // uTarget + // + this.uTarget.Location = new System.Drawing.Point(3, 3); + this.uTarget.Name = "uTarget"; + this.uTarget.Size = new System.Drawing.Size(1308, 61); + this.uTarget.TabIndex = 0; + // + // layoutControlMain + // + this.layoutControlMain.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlMain.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlMain.GroupBordersVisible = false; + this.layoutControlMain.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem1, + this.layoutControlItem2, + this.layoutControlItem6, + this.layoutControlItem7, + this.layoutControlItem8, + this.lcitemSystemId, + this.layoutControlItem16}); + this.layoutControlMain.Name = "Root"; + this.layoutControlMain.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlMain.Size = new System.Drawing.Size(1314, 857); + this.layoutControlMain.TextVisible = false; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.uTarget; + this.layoutControlItem1.CustomizationFormText = "layoutControlItem1"; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.MaxSize = new System.Drawing.Size(0, 65); + this.layoutControlItem1.MinSize = new System.Drawing.Size(350, 65); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(1312, 65); + this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.tabStatus; + this.layoutControlItem2.CustomizationFormText = "layoutControlItem2"; + this.layoutControlItem2.Location = new System.Drawing.Point(0, 65); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(1312, 592); + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.uEventLog; + this.layoutControlItem6.CustomizationFormText = "layoutControlItem6"; + this.layoutControlItem6.Location = new System.Drawing.Point(0, 657); + this.layoutControlItem6.MaxSize = new System.Drawing.Size(0, 174); + this.layoutControlItem6.MinSize = new System.Drawing.Size(209, 174); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(1146, 174); + this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem6.TextVisible = false; + // + // layoutControlItem7 + // + this.layoutControlItem7.Control = this.uDataLog; + this.layoutControlItem7.CustomizationFormText = "layoutControlItem7"; + this.layoutControlItem7.Location = new System.Drawing.Point(1146, 683); + this.layoutControlItem7.MaxSize = new System.Drawing.Size(166, 0); + this.layoutControlItem7.MinSize = new System.Drawing.Size(166, 24); + this.layoutControlItem7.Name = "layoutControlItem7"; + this.layoutControlItem7.Size = new System.Drawing.Size(166, 148); + this.layoutControlItem7.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem7.TextVisible = false; + // + // layoutControlItem8 + // + this.layoutControlItem8.Control = this.statusStrip1; + this.layoutControlItem8.CustomizationFormText = "layoutControlItem8"; + this.layoutControlItem8.Location = new System.Drawing.Point(0, 831); + this.layoutControlItem8.MaxSize = new System.Drawing.Size(0, 24); + this.layoutControlItem8.MinSize = new System.Drawing.Size(104, 24); + this.layoutControlItem8.Name = "layoutControlItem8"; + this.layoutControlItem8.Size = new System.Drawing.Size(1312, 24); + this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem8.TextVisible = false; + // + // lcitemSystemId + // + this.lcitemSystemId.Control = this.edModuleID; + this.lcitemSystemId.CustomizationFormText = "System Id"; + this.lcitemSystemId.Location = new System.Drawing.Point(1146, 657); + this.lcitemSystemId.MinSize = new System.Drawing.Size(57, 26); + this.lcitemSystemId.Name = "lcitemSystemId"; + this.lcitemSystemId.Size = new System.Drawing.Size(105, 26); + this.lcitemSystemId.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemSystemId.Text = " ID "; + this.lcitemSystemId.TextSize = new System.Drawing.Size(20, 14); + // + // layoutControlItem16 + // + this.layoutControlItem16.Control = this.chbPolling; + this.layoutControlItem16.CustomizationFormText = "layoutControlItem16"; + this.layoutControlItem16.Location = new System.Drawing.Point(1251, 657); + this.layoutControlItem16.Name = "layoutControlItem16"; + this.layoutControlItem16.Size = new System.Drawing.Size(61, 26); + this.layoutControlItem16.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem16.TextVisible = false; + // + // tmrDisplay + // + this.tmrDisplay.Enabled = true; + this.tmrDisplay.Interval = 500; + this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick); + // + // mnMain + // + this.mnMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem, + this.historyToolStripMenuItem, + this.updateToolStripMenuItem}); + this.mnMain.Location = new System.Drawing.Point(0, 0); + this.mnMain.Name = "mnMain"; + this.mnMain.Size = new System.Drawing.Size(1314, 24); + this.mnMain.TabIndex = 2; + this.mnMain.Text = "menuStrip1"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.levelConfigToolStripMenuItem, + this.exitToolStripMenuItem}); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); + this.fileToolStripMenuItem.Text = "File"; + // + // levelConfigToolStripMenuItem + // + this.levelConfigToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.changeLeToolStripMenuItem, + this.changePasswordToolStripMenuItem}); + this.levelConfigToolStripMenuItem.Name = "levelConfigToolStripMenuItem"; + this.levelConfigToolStripMenuItem.Size = new System.Drawing.Size(141, 22); + this.levelConfigToolStripMenuItem.Text = "Level Config"; + this.levelConfigToolStripMenuItem.Click += new System.EventHandler(this.levelConfigToolStripMenuItem_Click); + // + // changeLeToolStripMenuItem + // + this.changeLeToolStripMenuItem.Name = "changeLeToolStripMenuItem"; + this.changeLeToolStripMenuItem.Size = new System.Drawing.Size(169, 22); + this.changeLeToolStripMenuItem.Text = "Change Level"; + this.changeLeToolStripMenuItem.Click += new System.EventHandler(this.changeLeToolStripMenuItem_Click); + // + // changePasswordToolStripMenuItem + // + this.changePasswordToolStripMenuItem.Name = "changePasswordToolStripMenuItem"; + this.changePasswordToolStripMenuItem.Size = new System.Drawing.Size(169, 22); + this.changePasswordToolStripMenuItem.Text = "Change Password"; + this.changePasswordToolStripMenuItem.Click += new System.EventHandler(this.changePasswordToolStripMenuItem_Click); + // + // exitToolStripMenuItem + // + this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; + this.exitToolStripMenuItem.Size = new System.Drawing.Size(141, 22); + this.exitToolStripMenuItem.Text = "Exit"; + this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); + // + // historyToolStripMenuItem + // + this.historyToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.historyViewToolStripMenuItem, + this.inventoryViewToolStripMenuItem}); + this.historyToolStripMenuItem.Name = "historyToolStripMenuItem"; + this.historyToolStripMenuItem.Size = new System.Drawing.Size(57, 20); + this.historyToolStripMenuItem.Text = "History"; + // + // historyViewToolStripMenuItem + // + this.historyViewToolStripMenuItem.Name = "historyViewToolStripMenuItem"; + this.historyViewToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.historyViewToolStripMenuItem.Text = "History View"; + this.historyViewToolStripMenuItem.Click += new System.EventHandler(this.historyViewToolStripMenuItem_Click); + // + // inventoryViewToolStripMenuItem + // + this.inventoryViewToolStripMenuItem.Name = "inventoryViewToolStripMenuItem"; + this.inventoryViewToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.inventoryViewToolStripMenuItem.Text = "Inventory View"; + this.inventoryViewToolStripMenuItem.Click += new System.EventHandler(this.inventoryViewToolStripMenuItem_Click); + // + // updateToolStripMenuItem + // + this.updateToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.firmwareUpdateToolStripMenuItem}); + this.updateToolStripMenuItem.Name = "updateToolStripMenuItem"; + this.updateToolStripMenuItem.Size = new System.Drawing.Size(57, 20); + this.updateToolStripMenuItem.Text = "Update"; + // + // firmwareUpdateToolStripMenuItem + // + this.firmwareUpdateToolStripMenuItem.Name = "firmwareUpdateToolStripMenuItem"; + this.firmwareUpdateToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.firmwareUpdateToolStripMenuItem.Text = "Firmware Update"; + this.firmwareUpdateToolStripMenuItem.Click += new System.EventHandler(this.firmwareUpdateToolStripMenuItem_Click); + // + // fmxMain + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1314, 881); + this.Controls.Add(this.layoutControl1); + this.Controls.Add(this.mnMain); + this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxMain.IconOptions.Icon"))); + this.Name = "fmxMain"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "LFP SYSTEM"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.fmxMain_FormClosing); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.chbPolling.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.edModuleID.Properties)).EndInit(); + this.statusStrip1.ResumeLayout(false); + this.statusStrip1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.tabStatus)).EndInit(); + this.tabStatus.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlMain)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemSystemId)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).EndInit(); + this.mnMain.ResumeLayout(false); + this.mnMain.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlMain; + private Controls.ucTargetControl uTarget; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraTab.XtraTabControl tabStatus; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private Controls.ucEventLog uEventLog; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private Controls.ucDataLog uDataLog; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7; + private System.Windows.Forms.StatusStrip statusStrip1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8; + private System.Windows.Forms.ToolStripStatusLabel CommStatusBar; + private System.Windows.Forms.ToolStripStatusLabel LogStatusBar; + private System.Windows.Forms.ToolStripStatusLabel HeatBeatStatusBar; + private DevExpress.XtraEditors.TextEdit edModuleID; + private DevExpress.XtraLayout.LayoutControlItem lcitemSystemId; + private DevExpress.XtraTab.XtraTabPage pgMain; + //private Controls.ucMainStatus ucMsGraph; + private DevExpress.XtraEditors.CheckEdit chbPolling; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem16; + private System.Windows.Forms.Timer tmrDisplay; + private System.Windows.Forms.MenuStrip mnMain; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem historyToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem historyViewToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem updateToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem firmwareUpdateToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem inventoryViewToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem levelConfigToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem changeLeToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem changePasswordToolStripMenuItem; + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxMain.cs b/LFP_Manager/Forms/fmxMain.cs new file mode 100644 index 0000000..fac204e --- /dev/null +++ b/LFP_Manager/Forms/fmxMain.cs @@ -0,0 +1,1239 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Linq; +using System.Windows.Forms; +using DevExpress.XtraEditors; + +using LFP_Manager.Forms; +using LFP_Manager.Controls; +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Threads; +using LFP_Manager.Utils; +using DevExpress.Utils.Drawing.Helpers; +using System.Threading.Tasks; + +namespace LFP_Manager.Forms +{ + public partial class fmxMain : DevExpress.XtraEditors.XtraForm + { + #region VARIABLES + + // Child form + private fmxInventoryConfig InventoryConfig = null; + private fmxModuleDetail ModuleDetailForm = null; + private fmxFwUpdate FwUpdateForm = null; + private fmxHistory HistoryForm = null; + + // Static Variables + private CommConfig Config = new CommConfig(); + private DeviceSystemTotalData SystemTotalData; + private DeviceSystemData[] SystemData; + + // Thread Variables + private csUartThread uartThread = null; + private CsUartThread124050 rs232Thread124050 = null; + private CsUartThreadDelta rs485Thread = null; + private CsRs485Thread124050 rs485Thread124050 = null; + private CsSnmpThread snmpThread = null; + private CsSnmpThread124050 snmpThread124050 = null; + + private csDbThread dbThread = null; + + private ucMainStatus MainStatus = null; + private ucShelfStatus ShelfStatus = null; + + private int ModuleID = 1; + + bool Active = false; + + #endregion + + #region CONSTRUCTORS + + public fmxMain() + { + InitializeComponent(); + + StructDataInit(); + //DataInit(); + + IniLoad(ref Config); + + uTarget.OnConfig += ConfigButtonClick; + uTarget.OnStart += StartButtonClick; + + uDataLog.OnUpdate += LogStatusUpdate; + + DisplaySystemFwVerModule(); + } + + private void IniLoad(ref CommConfig aConfig) + { + csIniControlFunction.IniLoad(Application.ExecutablePath, ref aConfig); + + uTarget.UpdateConfig(ref aConfig); + + TypeChangedUpdate(ref aConfig); + } + + private void StructDataInit() + { + SystemTotalData = new DeviceSystemTotalData + { + ValueData = new DeviceValueTotalData(), + StatusData = new DeviceStatusTotalData() + }; + + SystemData = new DeviceSystemData[csConstData.SystemInfo.MAX_MODULE_SIZE]; + + for (int i = 0; i < csConstData.SystemInfo.MAX_MODULE_SIZE; i++) + { + SystemData[i] = new DeviceSystemData(); + } + } + + #endregion + + #region BUTTON EVENT + + private void ConfigButtonClick(object sender, EventArgs e) + { + foreach (Form frm in Application.OpenForms) + { + if (frm.Name == "fmxCommConfig") + { + frm.Activate(); + return; + } + } + fmxCommConfig CommConfigForm = new fmxCommConfig + { + Owner = this + }; + + CommConfigForm.OnUpdate += UpdateConfig; + CommConfigForm.Show(); + } + + private void StartButtonClick(object sender, EventArgs e) + { + if (Active) + { + StructDataInit(); + + switch (Config.CommType) + { + case csConstData.CommType.COMM_UART: + switch (Config.UartModelIndex) + { + case csConstData.MODEL_INDEX.LFPM_124050D: // AMG Protocol + if (rs232Thread124050 != null) + { + rs232Thread124050.disposeThread(); + rs232Thread124050 = null; + UpdateDataUart(this, ref SystemData[ModuleID - 1]); + + edModuleID.Enabled = true; + chbPolling.Enabled = true; + } + break; + default: + if (uartThread != null) + { + uartThread.disposeThread(); + uartThread = null; + UpdateDataUart(this, ref SystemData[ModuleID - 1]); + + edModuleID.Enabled = true; + chbPolling.Enabled = true; + } + break; + } + break; + case csConstData.CommType.COMM_RS485: + // DELTA Protocol + switch (Config.UartModelIndex) + { + case csConstData.MODEL_INDEX.LFPM_124050D: + if (rs485Thread124050 != null) + { + rs485Thread124050.disposeThread(); + rs485Thread124050 = null; + UpdateDataRS485(this, ref SystemData); + + edModuleID.Enabled = true; + chbPolling.Enabled = true; + } + break; + default: + if (rs485Thread != null) + { + rs485Thread.disposeThread(); + rs485Thread = null; + UpdateDataRS485(this, ref SystemData); + + edModuleID.Enabled = true; + chbPolling.Enabled = true; + } + break; + } + break; + case csConstData.CommType.COMM_SNMP: + break; + default: + break; + } + + if (snmpThread != null) + { + snmpThread.disposeThread(); + snmpThread = null; + UpdateSnmpData(this, ref SystemData[0]); + } + + if (snmpThread124050 != null) + { + snmpThread124050.Dispose(); + snmpThread124050 = null; + UpdateSnmpData(this, ref SystemData[0]); + } + + if (dbThread != null) + { + dbThread.disposeThread(); + dbThread = null; + } + + Active = false; + } + else + { + try + { + ModuleID = Convert.ToInt16(edModuleID.Text); + } + catch (Exception) + { + MessageBox.Show("Wrong Module ID - Please check module ID", "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + switch (Config.CommType) + { + case csConstData.CommType.COMM_UART: + // UART MODE - RS-232 + switch (Config.UartModelIndex) + { + case csConstData.MODEL_INDEX.LFPM_124050D: + CommUARTStart124050(); + break; + default: + CommUARTStart(); + break; + } + break; + case csConstData.CommType.COMM_RS485: + // UART MODE - RS-485 + switch (Config.UartModelIndex) + { + case csConstData.MODEL_INDEX.LFPM_124050D: + CommRS485_124050_Start(); + break; + default: + CommRS485Start(); + break; + } + break; + case csConstData.CommType.COMM_SNMP: + switch (Config.SnmpModelIndex) + { + case csConstData.MODEL_INDEX.LFPM_124050D: + StartProcessSNMP124050(); + break; + default: + StartProcessSNMP(); + break; + } + break; + } + } + uTarget.UpdateStatus(Active); + uDataLog.UpdateActiveStatus(Active, ModuleID, Config, SystemData); + DisplayCommStatus(); + } + + private void UartRecvData(byte[] data) + { + if (this.InvokeRequired) + { + this.Invoke(new MethodInvoker(delegate () + { + FwUpdateForm?.RecvData(data); + HistoryForm?.RecvUardData(data); + })); + } + else + { + FwUpdateForm?.RecvData(data); + HistoryForm?.RecvUardData(data); + } + } + + private void CommUARTStart() + { + try + { + uartThread = new csUartThread(ModuleID, Config, ref SystemData[ModuleID - 1]); + uartThread.OnUpdate += UpdateDataUart; + uartThread.OnDataRecv += UartRecvData; + uartThread.OnPrint += CommDataPrint; + uartThread.SetPolling(chbPolling.Checked, ModuleID, ref SystemData[ModuleID - 1]); + + if (uartThread.Start(ref Config, ModuleID, chbPolling.Checked)) + { + Active = true; + edModuleID.Enabled = false; + chbPolling.Enabled = true; + + if (chbPolling.Checked) + edModuleID.Enabled = false; + else + edModuleID.Enabled = true; + + uartThread.SetPolling(chbPolling.Checked, ModuleID, ref SystemData[ModuleID - 1]); + ShelfStatus?.UpdateSystemId(ModuleID); + + dbThread = new csDbThread(ModuleID, Config, SystemData); + dbThread.Start(ModuleID, Config); + } + else + { + if (uartThread != null) + { + uartThread.disposeThread(); + uartThread = null; + } + if (dbThread != null) + { + dbThread.disposeThread(); + dbThread = null; + } + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + + if (uartThread != null) + { + uartThread.disposeThread(); + uartThread = null; + } + if (dbThread != null) + { + dbThread.disposeThread(); + dbThread = null; + } + } + } + private void CommUARTStart124050() + { + try + { + rs232Thread124050 = new CsUartThread124050(ModuleID, Config, ref SystemData[ModuleID - 1]); + rs232Thread124050.OnUpdate += UpdateDataUart; + rs232Thread124050.OnDataRecv += UartRecvData; + rs232Thread124050.OnPrint += CommDataPrint; + rs232Thread124050.SetPolling(chbPolling.Checked, ModuleID, ref SystemData[ModuleID - 1]); + + if (rs232Thread124050.Start(ref Config, ModuleID, chbPolling.Checked)) + { + // UI 스레드에서 실행 보장 + this.Invoke((Action)(() => + { + Active = true; + edModuleID.Enabled = false; + chbPolling.Enabled = true; + + edModuleID.Enabled = !chbPolling.Checked; + + rs232Thread124050.SetPolling(chbPolling.Checked, ModuleID, ref SystemData[ModuleID - 1]); + ShelfStatus?.UpdateSystemId(ModuleID); + + dbThread = new csDbThread(ModuleID, Config, SystemData); + dbThread.Start(ModuleID, Config); + })); + } + else + { + if (rs232Thread124050 != null) + { + rs232Thread124050.disposeThread(); + rs232Thread124050 = null; + } + if (dbThread != null) + { + dbThread.disposeThread(); + dbThread = null; + } + } + } + catch (Exception ex) + { + Active = false; + + if (rs232Thread124050 != null) + { + rs232Thread124050.disposeThread(); + rs232Thread124050 = null; + } + if (dbThread != null) + { + dbThread.disposeThread(); + dbThread = null; + } + + MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void CommRS485Start() + { + try + { + rs485Thread = new CsUartThreadDelta(ModuleID, Config, ref SystemData); + rs485Thread.OnUpdate += UpdateDataRS485; + rs485Thread.OnDataRecv += UartRecvData; + rs485Thread.OnPrint += CommDataPrint; + rs485Thread.SetPolling(chbPolling.Checked, ModuleID, ref SystemData); + + if (rs485Thread.Start(ref Config, ModuleID, chbPolling.Checked)) + { + Active = true; + edModuleID.Enabled = false; + chbPolling.Enabled = true; + + edModuleID.Enabled = !chbPolling.Checked; + + rs485Thread.SetPolling(chbPolling.Checked, ModuleID, ref SystemData); + ShelfStatus?.UpdateSystemId(ModuleID); + + dbThread = new csDbThread(ModuleID, Config, SystemData); + dbThread.Start(ModuleID, Config); + } + else + { + if (rs485Thread != null) + { + rs485Thread.disposeThread(); + rs485Thread = null; + } + if (dbThread != null) + { + dbThread.disposeThread(); + dbThread = null; + } + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + + if (rs485Thread != null) + { + rs485Thread.disposeThread(); + rs485Thread = null; + } + if (dbThread != null) + { + dbThread.disposeThread(); + dbThread = null; + } + } + } + + private void CommRS485_124050_Start() + { + try + { + rs485Thread124050 = new CsRs485Thread124050(ModuleID, Config, ref SystemData); + rs485Thread124050.OnUpdate += UpdateDataRS485; + rs485Thread124050.OnDataRecv += UartRecvData; + rs485Thread124050.OnPrint += CommDataPrint; + rs485Thread124050.SetPolling(chbPolling.Checked, ModuleID, ref SystemData); + + if (rs485Thread124050.Start(ref Config, ModuleID, chbPolling.Checked)) + { + Active = true; + edModuleID.Enabled = false; + chbPolling.Enabled = true; + + edModuleID.Enabled = !chbPolling.Checked; + + rs485Thread124050.SetPolling(chbPolling.Checked, ModuleID, ref SystemData); + ShelfStatus?.UpdateSystemId(ModuleID); + + dbThread = new csDbThread(ModuleID, Config, SystemData); + dbThread.Start(ModuleID, Config); + } + else + { + if (rs485Thread124050 != null) + { + rs485Thread124050.disposeThread(); + rs485Thread124050 = null; + } + if (dbThread != null) + { + dbThread.disposeThread(); + dbThread = null; + } + } + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + + if (rs485Thread124050 != null) + { + rs485Thread124050.disposeThread(); + rs485Thread124050 = null; + } + if (dbThread != null) + { + dbThread.disposeThread(); + dbThread = null; + } + } + } + + private void StartProcessSNMP() + { + try + { + snmpThread = new CsSnmpThread(Config, ref SystemData[ModuleID - 1]); + snmpThread.OnUpdate += UpdateSnmpData; + snmpThread.OnSetResult += SnmpRecvData; + snmpThread.Start(Config.SnmpIP, chbPolling.Checked); + + Active = true; + + dbThread = new csDbThread(ModuleID, Config, SystemData); + dbThread.Start(ModuleID, Config); + } + catch (Exception) + { + if (snmpThread == null) + { + snmpThread.disposeThread(); + snmpThread = null; + } + if (dbThread != null) + { + dbThread.disposeThread(); + dbThread = null; + } + } + } + private void StartProcessSNMP124050() + { + try + { + snmpThread124050 = new CsSnmpThread124050(Config, ref SystemData[ModuleID - 1]); + snmpThread124050.OnUpdate += UpdateSnmpData; + snmpThread124050.OnSetResult += SnmpRecvData; + snmpThread124050.Start(Config.SnmpIP, chbPolling.Checked); + + Active = true; + + dbThread = new csDbThread(ModuleID, Config, SystemData); + dbThread.Start(ModuleID, Config); + } + catch (Exception) + { + if (snmpThread124050 == null) + { + snmpThread124050.Dispose(); + snmpThread124050 = null; + } + if (dbThread != null) + { + dbThread.disposeThread(); + dbThread = null; + } + } + } + + #endregion + + #region UPDATE FUNCTIONS + + private void TypeChangeUpdateUart(ref CommConfig aConfig) + { + tabStatus.TabPages[0].PageVisible = true; + for (int i = 1; i < tabStatus.TabPages.Count; i++) + { + tabStatus.TabPages[i].PageVisible = false; + } + tabStatus.TabPages[0].Text = String.Format("LFP Module [{0}.{1}.{2}.{3}]" + , 0 + , 0 + , 0 + , 0 + ); + ShelfStatus = new ucShelfStatus(); + ShelfStatus.OnCommand += SetCmdEvent; + ShelfStatus.Dock = DockStyle.Fill; + + tabStatus.TabPages[0].PageVisible = true; + tabStatus.TabPages[0].Controls.Add(ShelfStatus); + + ShelfStatus.Start(Convert.ToInt32(edModuleID.Text), ref aConfig, ref SystemData); + + edModuleID.Enabled = true; + chbPolling.Enabled = true; + } + private void TypeChangeUpdateRS485(ref CommConfig aConfig) + { + // Display Screen Delete + if (MainStatus != null) + { + MainStatus.Dispose(); + MainStatus = null; + } + + if (ShelfStatus != null) + { + ShelfStatus.Dispose(); + ShelfStatus = null; + } + if (aConfig.ModuleQty > 1) + { + // All disable first + for (int i = 0; i < tabStatus.TabPages.Count; i++) + { + tabStatus.TabPages[i].PageVisible = false; + } + + MainStatus = new ucMainStatus(); + MainStatus.OnCommand += SetCmdEvent; + + tabStatus.TabPages[0].Text = string.Format("LFP System"); + tabStatus.TabPages[0].PageVisible = true; + tabStatus.TabPages[0].Controls.Add(MainStatus); + MainStatus.Dock = DockStyle.Fill; + MainStatus.UpdateMainConfig(ref Config, ref SystemData); + + //SystemTotalData.IdentData.ModuleQuantity = Config.ModuleQty; + + edModuleID.Enabled = false; + chbPolling.Enabled = false; + } + else + { + tabStatus.TabPages[0].PageVisible = true; + for (int i = 1; i < tabStatus.TabPages.Count; i++) + { + tabStatus.TabPages[i].PageVisible = false; + } + tabStatus.TabPages[0].Text = String.Format("LFP Module [{0}.{1}.{2}.{3}]" + , 0 + , 0 + , 0 + , 0 + ); + ShelfStatus = new ucShelfStatus(); + ShelfStatus.OnCommand += SetCmdEvent; + ShelfStatus.OnSendUartData += SetWriteData; + ShelfStatus.Dock = DockStyle.Fill; + + tabStatus.TabPages[0].PageVisible = true; + tabStatus.TabPages[0].Controls.Add(ShelfStatus); + + ShelfStatus.Start(ModuleID, ref aConfig, ref SystemData); + + edModuleID.Enabled = true; + chbPolling.Enabled = true; + } + } + private void TypeChangeUpdateSnmp(ref CommConfig aConfig) + { + tabStatus.TabPages[0].PageVisible = true; + for (int i = 1; i < tabStatus.TabPages.Count; i++) + { + tabStatus.TabPages[i].PageVisible = false; + } + tabStatus.TabPages[0].Text = String.Format("LFP Module [{0}.{1}.{2}.{3}]" + , 0 + , 0 + , 0 + , 0 + ); + ShelfStatus = new ucShelfStatus(); + ShelfStatus.OnCommand += SetCmdEvent; + ShelfStatus.Dock = DockStyle.Fill; + + tabStatus.TabPages[0].PageVisible = true; + tabStatus.TabPages[0].Controls.Add(ShelfStatus); + + ShelfStatus.Start(ModuleID, ref aConfig, ref SystemData); + + edModuleID.Enabled = false; + chbPolling.Enabled = true; + } + + private void TypeChangedUpdate(ref CommConfig aConfig) + { + // Display Screen Deletes + if (ShelfStatus != null) + { + ShelfStatus.Dispose(); + ShelfStatus = null; + } + + SetCellTempQty(aConfig, ref SystemData); + try + { + ModuleID = Convert.ToInt16(edModuleID.Text); + } + catch (Exception) + { + ModuleID = 1; + } + + switch (aConfig.CommType) + { + case csConstData.CommType.COMM_UART: + TypeChangeUpdateUart(ref aConfig); + historyToolStripMenuItem.Visible = true; + inventoryViewToolStripMenuItem.Visible = true; + updateToolStripMenuItem.Visible = false; + break; + case csConstData.CommType.COMM_RS485: + TypeChangeUpdateRS485(ref aConfig); + historyToolStripMenuItem.Visible = true; + inventoryViewToolStripMenuItem.Visible = false; + updateToolStripMenuItem.Visible = true; + break; + case csConstData.CommType.COMM_SNMP: + TypeChangeUpdateSnmp(ref aConfig); + historyToolStripMenuItem.Visible = true; + inventoryViewToolStripMenuItem.Visible = false; + updateToolStripMenuItem.Visible = false; + break; + default: + break; + } + //DisplayCommStatus(); + } + + private void SetCellTempQty(CommConfig aConfig, ref DeviceSystemData[] SystemData) + { + switch (aConfig.CommType) + { + case csConstData.CommType.COMM_UART: + case csConstData.CommType.COMM_RS485: + switch (aConfig.UartModelIndex) + { + case csConstData.MODEL_INDEX.LFPM_48100D: + case csConstData.MODEL_INDEX.LFPM_48150D: + case csConstData.MODEL_INDEX.LFPM_48200D: + case csConstData.MODEL_INDEX.LFPM_48250D: + case csConstData.MODEL_INDEX.LFPM_48300D: + for (int i = 0; i < SystemData.Length; i++) + { + SystemData[i].cellQty = 15; + SystemData[i].tempQty = 4; + } + break; + case csConstData.MODEL_INDEX.LFPM_124050D: + for (int i = 0; i < SystemData.Length; i++) + { + SystemData[i].cellQty = csConstData.SystemInfo.MAX_MODULE_CELL_SIZE; + SystemData[i].tempQty = csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE; + } + break; + default: + break; + } + break; + case csConstData.CommType.COMM_SNMP: + switch (aConfig.SnmpModelIndex) + { + case csConstData.MODEL_INDEX.LFPM_48100D: + case csConstData.MODEL_INDEX.LFPM_48150D: + case csConstData.MODEL_INDEX.LFPM_48200D: + case csConstData.MODEL_INDEX.LFPM_48250D: + case csConstData.MODEL_INDEX.LFPM_48300D: + for (int i = 0; i < SystemData.Length; i++) + { + SystemData[i].cellQty = 15; + SystemData[i].tempQty = 4; + } + break; + case csConstData.MODEL_INDEX.LFPM_124050D: + for (int i = 0; i < SystemData.Length; i++) + { + SystemData[i].cellQty = csConstData.SystemInfo.MAX_MODULE_CELL_SIZE; + SystemData[i].tempQty = csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE; + } + break; + default: + break; + } + break; + default: + for (int i = 0; i < SystemData.Length; i++) + { + SystemData[i].cellQty = 15; + SystemData[i].tempQty = 4; + } + break; + } + } + + private void UpdateDataUart(object sender, ref DeviceSystemData rData) + { + ShelfStatus?.UpdateData(ref SystemData); + dbThread?.UpdateData(ModuleID, SystemData); + uDataLog.UpdateData(SystemData); + } + private void UpdateDataRS485(object sender, ref DeviceSystemData[] rData) + { + ShelfStatus?.UpdateData(ref SystemData); + dbThread?.UpdateData(ModuleID, SystemData); + uDataLog.UpdateData(SystemData); + } + + private void DisplaySystemFwVerModule() + { + switch (Config.ControlLevel) + { + case 0: // User Level + inventoryViewToolStripMenuItem.Visible = false; + break; + case 1: // Technician Level + inventoryViewToolStripMenuItem.Visible = false; + break; + case 2: // Engineer Level + inventoryViewToolStripMenuItem.Visible = false; + break; + case 3: // Master Level + inventoryViewToolStripMenuItem.Visible = true; + break; + default: // User Level + inventoryViewToolStripMenuItem.Visible = false; + break; + } + + switch (Config.ControlLevel) + { + case 0: // User Level + this.Text = String.Format("LFP SYSTEM [{0}] -- DELTA - User Level", Application.ProductVersion); + break; + case 1: // Technician Level + this.Text = String.Format("LFP SYSTEM [{0}] -- DELTA - Technician Level", Application.ProductVersion); + break; + case 2: // Engineer Level + this.Text = String.Format("LFP SYSTEM [{0}] -- DELTA - Engineer Level", Application.ProductVersion); + break; + case 3: // Master Level + this.Text = String.Format("LFP SYSTEM [{0}] -- DELTA - Master Level", Application.ProductVersion); + break; + default: + this.Text = String.Format("LFP SYSTEM [{0}] -- DELTA - User Level", Application.ProductVersion); + break; + } + + if (this.InvokeRequired) + { + this.Invoke(new MethodInvoker(delegate () + { + if (SystemData[0].ValueData.fw_ver[0] != 0x00) + { + byte[] sn = new byte[33]; + for (int i = 0; i < 32; i++) + sn[i] = SystemData[0].Information.BMS_SN[i]; + sn[32] = 0; + + tabStatus.TabPages[0].Text = String.Format("{0} [{1}] - {2}", "LFP MODULE" + , Encoding.UTF8.GetString(SystemData[0].ValueData.fw_ver) + , Encoding.Default.GetString(sn).Trim('\0') + ); + } + else + { + tabStatus.TabPages[0].Text = String.Format("LFP MODULE"); + } + })); + } + else + { + if (SystemData[0].ValueData.fw_ver[0] != 0x00) + { + byte[] sn = new byte[17]; + for (int i = 0; i < 16; i++) + sn[i] = SystemData[0].Information.BMS_SN[i]; //22.06.30 Byul 32->16 + sn[16] = 0; + + tabStatus.TabPages[0].Text = String.Format("{0} [{1}] - {2}", "LFP MODULE" + , Encoding.UTF8.GetString(SystemData[0].ValueData.fw_ver).Trim('\0') + , Encoding.Default.GetString(sn).Trim('\0') + ); + } + else + { + tabStatus.TabPages[0].Text = String.Format("LFP MODULE"); + } + } + } + + private void UpdateSnmpData(object sender, ref DeviceSystemData rData) + { + uDataLog.UpdateData(SystemData); + } + + private void UpdateConfig(object aConfig) + { + Config = (CommConfig)aConfig; + + IniLoad(ref Config); + } + + #endregion + + #region MENU EVENT + + private void commConfigToolStripMenuItem_Click(object sender, EventArgs e) + { + ConfigButtonClick(sender, e); + } + + private void exitToolStripMenuItem_Click(object sender, EventArgs e) + { + Close(); + } + + private void testSendToolStripMenuItem_Click(object sender, EventArgs e) + { + csHistoryFunction.DbCreate(System.IO.Path.GetDirectoryName(Application.ExecutablePath)); + } + + private void firmwareUpdateToolStripMenuItem_Click(object sender, EventArgs e) + { + if ((rs485Thread == null) && (rs485Thread124050 == null)) + { + return; + } + + if (rs485Thread124050 != null) + { + FwUpdateForm = new fmxFwUpdate(rs485Thread124050.ModuleID); + } + else + { + FwUpdateForm = new fmxFwUpdate(rs485Thread.ModuleID); + } + + FwUpdateForm.OnAutoTxSet += SetAutoTx; + FwUpdateForm.OnSendUartData += SetWriteData; + FwUpdateForm.ShowDialog(); + } + + private void historyViewToolStripMenuItem_Click(object sender, EventArgs e) + { + foreach (Form frm in Application.OpenForms) + { + if (frm.Name == "fmxHistory") + { + frm.Activate(); + return; + } + } + HistoryForm = new fmxHistory(Config, ModuleID); + + HistoryForm.OnSendUartData += SetWriteData; + HistoryForm.ShowDialog(); + } + + private void inventoryViewToolStripMenuItem_Click(object sender, EventArgs e) + { + foreach (Form frm in Application.OpenForms) + { + if (frm.Name == "fmxInventoryConfig") + { + frm.Activate(); + return; + } + } + InventoryConfig = new fmxInventoryConfig(ModuleID, ref Config, ref SystemData[ModuleID - 1]); + + InventoryConfig.OnSendUartData += SetWriteData; + InventoryConfig.Show(); + } + + #endregion + + #region FORM EVENT + + private void fmxMain_FormClosing(object sender, FormClosingEventArgs e) + { + if (uartThread != null) + { + uartThread.disposeThread(); + uartThread = null; + } + if (rs232Thread124050 != null) + { + rs232Thread124050.disposeThread(); + rs232Thread124050 = null; + } + if (rs485Thread != null) + { + rs485Thread.disposeThread(); + rs485Thread = null; + } + if (rs485Thread124050 != null) + { + rs485Thread124050.disposeThread(); + rs485Thread124050 = null; + } + if (dbThread != null) + { + dbThread.disposeThread(); + dbThread = null; + } + } + + #endregion + + #region STATUS BAR EVENT + + void DisplayCommStatus() + { + if (Active == true) + CommStatusBar.Text = "Comm: On"; + else + CommStatusBar.Text = "Comm: Off"; + } + + void DisplayCommStatus(string msg) + { + if (msg != "") + CommStatusBar.Text = String.Format("Comm: {0}", msg); + } + + void LogStatusUpdate(object sender, string msg, bool active, int aLogTime) + { + LogStatusBar.Text = msg; + + } + + #endregion + + #region COMMAND AND SET + + private void CommDataPrint(object sender, string msg) + { + if (msg != "") + { + uEventLog.EventUpdate(msg + "\r\n"); + } + } + + private void SetWriteData(ushort WriteAddr, byte[] WriteData, bool RelyFlag, int type) + { + uartThread?.SetWriteReg(WriteAddr, WriteData, RelyFlag, type); + rs232Thread124050?.SetWriteReg(WriteAddr, WriteData, RelyFlag, type); + rs485Thread?.SetWriteReg(WriteAddr, WriteData, RelyFlag, type); + rs485Thread124050?.SetWriteReg(WriteAddr, WriteData, RelyFlag, type); + } + + private void SetCmdEvent(int sId, int cmd, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib) + { + if (MainStatus != null) + { + switch (cmd) + { + case 1: // Module quatity set + break; + case 2: + CreateModuleDetailForm(sId); + break; + } + } + uartThread?.SendProcessFromApp(sId, cmd, index, flag, ref aParam, ref aCalib); + rs232Thread124050?.SendProcessFromApp(sId, cmd, index, flag, ref aParam, ref aCalib); + } + + private void CreateModuleDetailForm(int sID) + { + foreach (Form frm in Application.OpenForms) + { + if (frm.Name == "fmxModuleDetail") + { + ((fmxModuleDetail)frm).SetModuleID(sID); + frm.Activate(); + return; + } + } + ModuleDetailForm = new fmxModuleDetail(sID, ref Config, ref SystemData); + + //ModuleDetailForm.OnAutoTxCanSet += SetAutoTxCan; + //ModuleDetailForm.OnSendDataCan += SendDataToCan; + ModuleDetailForm.Show(); + } + + private void chbPolling_CheckedChanged(object sender, EventArgs e) + { + if (edModuleID.Text != "") + { + ModuleID = Convert.ToInt32(edModuleID.Text); + + if (uartThread != null) + { + uartThread.SetPolling(chbPolling.Checked, ModuleID, ref SystemData[ModuleID - 1]); + ShelfStatus?.UpdateSystemId(ModuleID); + } + if (rs232Thread124050 != null) + { + rs232Thread124050.SetPolling(chbPolling.Checked, ModuleID, ref SystemData[ModuleID - 1]); + ShelfStatus?.UpdateSystemId(ModuleID); + } + if (rs485Thread != null) + { + rs485Thread.SetPolling(chbPolling.Checked, ModuleID, ref SystemData); + ShelfStatus?.UpdateSystemId(ModuleID); + } + if (rs485Thread124050 != null) + { + rs485Thread124050.SetPolling(chbPolling.Checked, ModuleID, ref SystemData); + ShelfStatus?.UpdateSystemId(ModuleID); + } + snmpThread?.SetAutoTx(chbPolling.Checked); + snmpThread124050?.SetAutoTx(chbPolling.Checked); + + uDataLog.UpdateActiveStatus(Active, ModuleID, Config, SystemData); + dbThread?.UpdateData(ModuleID, SystemData); + + edModuleID.Enabled = !chbPolling.Checked; + } + } + + private void SnmpRecvData(string result, bool error) + { + if (result != "") + { + uEventLog.EventUpdate(result + "\r\n"); + } + } + + private void SetAutoTx(bool autoTx) + { + uartThread?.SetAutoTx(autoTx); + rs232Thread124050?.SetAutoTx(autoTx); + } + #endregion + + #region KEYBOARD HOOK + private void edSystemId_KeyPress(object sender, KeyPressEventArgs e) + { + csUtils.TypingOnlyNumber(sender, e, false, false); + } + #endregion + + #region MENU COMMAND + private void inventoryControlToolStripMenuItem_Click(object sender, EventArgs e) + { + foreach (Form frm in Application.OpenForms) + { + if (frm.Name == "fmxInventoryConfig") + { + frm.Activate(); + return; + } + } + InventoryConfig = new fmxInventoryConfig(0, ref Config, ref SystemData[0]); + + InventoryConfig.OnUpdate += UpdateInformation; + InventoryConfig.OnCommand += InvDataSetCmd; + //InventoryConfig.OnCommandBySnmp += SetInvEventBySnmp; + InventoryConfig.Show(); + } + + private void InvDataSetCmd(int sId, int mode, int index, int flag, ref DeviceInforation aInvData) + { + SystemData[0].CalibrationData.InvData = aInvData; + //OnCommand?.Invoke(sId, mode, index, flag, ref SystemData[0].ParamData, ref SystemData[0].CalibrationData); + //SetCmdToCan(sId, mode, index, flag, ref SystemData[0].ParamData, ref SystemData[0].CalibrationData); + } + + private void UpdateInformation(object sendor) + { + ((fmxInventoryConfig)sendor).UpdateData(ref SystemData[0]); + } + + private void checkDBToolStripMenuItem_Click(object sender, EventArgs e) + { + foreach (Form frm in Application.OpenForms) + { + if (frm.Name == "fmxExcelFile") + { + frm.Activate(); + return; + } + } + fmxExcelFile DbControl = new fmxExcelFile(Config); + + DbControl.Show(); + } + + private void levelConfigToolStripMenuItem_Click(object sender, EventArgs e) + { + } + + private void changeLeToolStripMenuItem_Click(object sender, EventArgs e) + { + foreach (Form frm in Application.OpenForms) + { + if (frm.Name == "FmxLevelConfig") + { + frm.Activate(); + return; + } + } + FmxLevelConfig LevelControl = new FmxLevelConfig(Config); + + LevelControl.ShowDialog(); + } + + private void changePasswordToolStripMenuItem_Click(object sender, EventArgs e) + { + foreach (Form frm in Application.OpenForms) + { + if (frm.Name == "FmxPasswordChange") + { + frm.Activate(); + return; + } + } + FmxPasswordChange ChangePassword = new FmxPasswordChange(Config); + + ChangePassword.ShowDialog(); + } + #endregion + + #region TIMER EVENT + private void tmrDisplay_Tick(object sender, EventArgs e) + { + uTarget.UpdateStatus(Active); + DisplaySystemFwVerModule(); + } + #endregion + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxMain.resx b/LFP_Manager/Forms/fmxMain.resx new file mode 100644 index 0000000..4a82c22 --- /dev/null +++ b/LFP_Manager/Forms/fmxMain.resx @@ -0,0 +1,4583 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 225, 17 + + + 342, 17 + + + 94, 16 + + + 51 + + + + + AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA + GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/ + ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7///////////////////// + ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff///////// + ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+ + /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7///// + ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc + x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7///////////////////////////// + ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt + e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP + SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7///////// + ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z + WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS + Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8 + +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+ + /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+ + /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO + SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz + 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o + 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9 + /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE + oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG + PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7///// + ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH + PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t + 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/ + ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/ + ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7///////////////////////////// + ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+ + /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ + TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7///////////////// + ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ + TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+ + /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7///// + ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP + SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7///////////////////////////////////////// + ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/ + ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/ + ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7///////////////////////////// + ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/ + ///+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////+/v7////////+/v3////////////////////////+/v3////////+/v7///////////////// + ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7///////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + /////////v7+/v7///////////////////////////////////////////////////////////////// + ///////////////////////////+/v7////////+/v7///////////////////////////////////// + ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7///////////////////// + ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7 + +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9 + /Pz+/v7///////////////////////////////////////////////////////////////////////// + ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM + RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7///////////////////////////////////// + ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL + QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+ + /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP + SgCOSQCPTAKFOwDVvaT////9/Pv+/v7///////////////////////////////////////////////// + ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8 + +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7///////// + /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO + SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF + OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+ + ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/ + //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7///////////////////////// + ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/ + mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79 + /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN + RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ + TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7///// + ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7///// + ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+ + /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ + TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP + SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH + PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/ + ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5 + 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+ + /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ + QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE + oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/ + ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7///////////////////////// + ///////////////////////////////////////////////////////+/v7+//////////////////// + ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+ + /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9 + /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP + SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL + RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7///////////////////////////////// + ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/ + ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7///////// + ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP + SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI + PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/ + ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x + glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7///////////////////////////// + ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM + RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+ + /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/ + ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP + SgCOSgGLRQGTURDz7ef+/v39/f3+/v7///////////////////////////////////////////////// + ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+ + /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7///////////// + ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN + RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9 + /fz9/f3+/v7+/v7///////////////////////////////////////////////////////////////// + ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO + SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7///////////////////////////////////////// + ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO + SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7///// + //////////////////////////////////////////////////////////////////////////////// + ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS + UA/y6+X+/v39/fz+/v7+/v7///////////////////////////////////////////////////////// + ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP + SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7///////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+ + /v7///////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO + SQCOSQGJQQDi0cD////9/Pv+/v7///////////////////////////////////////////////////// + ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J + QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39 + /fz+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz + hFazhFayhFazhVete1TWvqb////9/fz+/v7///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7///////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+ + /f3+/f3///////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v7+//////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////v7+ + /f39//////////////////////////////////////////////////////////////////////////// + ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39 + /fz8/v79/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA + nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1//// + x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV + i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC + jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC + hz8Ap3I//fz7/fz8/v79/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7 + /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8 + +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p + /v39/f38/v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+ + ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb + 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//7+/f39 + /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7//// + 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+ + /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA + j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB + j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB + i0UAlVYZ8+3m/f79/f38/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+//////////////// + /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39 + /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+ + sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+ + /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+//////// + /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+ + /f39/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO + /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39 + 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39 + /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+//////////////////////////// + /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+//// + /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A + kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + jkoCikIC4tHA/////Pv7/v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC + hz4A1r6m/////Pz7/v7+/v7+/////v7+//////////////////////////////////////////////// + /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+ + /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+//////////////////// + /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM + /////Pv6/v7+/v7+/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA + j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+//////////////////////////////////////// + /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+ + /v7+/v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+ + /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7 + /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq//// + /Pv6/v7+/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A + j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA + kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA + j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6 + /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+//////// + /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+ + /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA + xaJ//////Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU + /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA + j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+//////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+//////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+//////////// + 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+ + /////v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39 + /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/ + /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6 + ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+ + /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC + kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB + kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39//// + /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA + hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA + iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A + j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU + z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+//////// + /v7+/////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7//v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn + +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3 + +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8 + /fz8/v7+/////v7+/////v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v///v7+/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT + z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7 + ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A + hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A + fS0AtIdb/f38/Pz8///+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D + kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL + jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+//////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA + jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3 + iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA + jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA + jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK + 6t7S/v7+/fz8/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+//////////////////////// + /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs//// + /Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7 + /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38 + /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fz8 + /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+//////////////////////////////////// + /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+ + /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA + jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A + pnA8/Pv6/fz7/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq + iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+ + /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+//////////// + /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+ + //7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A + 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES + jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+//////////////// + /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6 + /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7 + /v79/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v39 + /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8 + +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+ + /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ + hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ + 8+3m/f39/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+ + /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA + jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA + u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA + j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA + jkkCikQE49PC/v7//fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8 + /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+ + /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7//// + t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA + jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU + hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD + /////fz8//7//v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA + oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC + hj0Az7SX/////fz7//7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//7+ + /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH + jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA + jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT//// + /Pz8/v7//v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA + t4tf/////fz7/v7+/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs + mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6 + /v7+/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v7+ + /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx + +/n3/fz8/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+ + rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA + jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW + k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV + kU8TmVoj8ejg/v39/fz7/v7//f39/v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off + 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v////7+/v7+/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v39/v7+ + ///+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v////// + /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v79/////////v7+/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v79/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////9/Lt9/Pu + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2svnmMrzrGR/////fz7//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ + /v39/fz8/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h + /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0//// + 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC + j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + jUgBlFIO7uTa/////f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB + jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7 + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+ + /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38//////////////////// + /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z + iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+ + sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG//// + /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + hz4Ar35J/v39/fz8/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+//////// + /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38//////////////////////////////// + /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+//////////////////////////////////////////// + /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA + /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW + k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+ + /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+//////////////////// + /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iEAA176j/////fz7//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39//////////////////////////////////////////// + ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38 + /fz8/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEA1buf/////fz8/v7+/v7+//////////////////////////////////////////////////////// + /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+ + /////////////////////////////////////////////////////////////////////////////v7+ + /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+//////////// + /////////////////////////////////////////////////////////////////////fz7////yKaB + hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v///f38////sH9K + hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+//////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oBi0QAnmIj9vHs/v39/v39//////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA + nWAf9vHs/v7+/v79//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo//// + /fz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v///f38//// + 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8//////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/v79+/n3omor + ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm + +PTw/v39/f39//////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sBjEUAmVwb9e/p/v7+/f38//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A + vpVq/////fz7/v/+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8AyKaB/////fz7/v///v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39 + //7///////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC + jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsCiD8Auo9h/////fz8/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE + iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB + 4tC+/////f38/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjUcBk1EN7+Xb/////f39/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj + n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f38////u5Jlhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkBjUgE4M66/////fz7/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR + 7+bd/v7+/f39//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv + +/n4/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0 + rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6 + ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC + hz4AtolZ/////fz8/v3+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA + j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + j0sBikIApGww+vj1/v39/f39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ + j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M + /////Pz7/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkCjkkG4c+7/////fz7/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+///+/v39 + /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d//// + /fz7/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/f38/f38 + 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A + jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sBiD8AyKiE/////fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oBiUEApW4z+vj1/v39/v39//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ + /v7+/f38/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4 + 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD + 49PB/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/Pz7//// + 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6//// + /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A + j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC + iUEAqHQ7+/j2/fz8/v39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jUgBkk8K7ODV/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL//// + /f38/v7+///+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6//////// + ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A + ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38 + /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBiUEA1Lqd/////fv6//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38 + sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+//////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////v7+/v39 + /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq + 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38 + /v39/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjUgBkU4J6NrM/////fz8//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA + jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEArnxG/v7+/f38/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO + 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i//// + /Pz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA + hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39//////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr + vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g + 4M24/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY + llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+//////////////////////////// + /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsCiUEArXpD/v7//f39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB + ikMA1bqf/////fz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39 + /f38/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39 + /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/////////v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI + iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8//// + /fz8//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA + mVsZ8+zl/v38/fz8//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7 + /v7+//7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz7/v7+ + 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf + 9vHs/v79/fz8//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z + iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAi0YAl1gT8+3l/v7+/f39//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA + upFj/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC + hz4AwZty/////fz8/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////f39 + /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC + jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ + hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsChz4At4ta/////fz8/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjUgCkEwL6dzO/////fz7//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD + 38y3/////fz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v/+/f39/v79 + +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////fz8 + /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A + kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK + 5tbG/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBjUcB4M25/////f38/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos + +PTw/fz8/f39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA + kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB + iUAAq3dA/Pr4/fz7/f39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v///fz7 + ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA + j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0oBikMAomgq+vf0/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////Pz7////4M24 + i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiUEA0rea/////fz7/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7 + /v38/v39/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////f38/v79 + +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/f38 + ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + kEwChz4AxaJ8/////fz7/v7+//////////////////////////////////////////////////////// + ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA + 07mb/////Pz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU + /v7+/Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+//// + //////////////////////////////////////////////////////////////////////////////7/ + /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7///////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+//////////////////////////// + /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jEQAm10b9O/p/v7+/f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+//////////////////////////////////////// + /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7 + /v7//v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jUgAklAK6dzO/////f38/v////////////////////////////////////////////////////////// + /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6 + /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng + lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+ + /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiD8Au5Jl/////fz8/v7+//7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+//////////////////// + /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj + /v39/fz8/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+//////////////////////////// + /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8 + ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb//// + /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A + upFj/////fz8/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+ + /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7//////////////////////// + /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf + llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA + kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkBjUcA49LA/////f38/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79 + /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3 + qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8////0baX + iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD + /////fz8/v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA + nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA + qHI4/Pv5/v39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+ + iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + kEsChz8Az7KS/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7 + /v39/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v39 + /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////fz8////59jIj0oD + jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ + /////fz8//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB + llYW7+Xb/v7+/f38/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0wChz8AuIxc/v7+/fz7/v39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+ + /v39/v////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fv6 + ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAjkkBjEYA4M24/////fz8/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa + /////f38//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v39/fz7 + 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB + jUcE3sq2/////Pz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oBikMAomgq+fXy/v39/f39//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/fz7//// + 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq + +vf1/f38/f39//7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39 + tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS + yqqM38u2/////v79/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/v79//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v79/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxModuleDetail.Designer.cs b/LFP_Manager/Forms/fmxModuleDetail.Designer.cs new file mode 100644 index 0000000..5ddee67 --- /dev/null +++ b/LFP_Manager/Forms/fmxModuleDetail.Designer.cs @@ -0,0 +1,210 @@ + +namespace LFP_Manager.Forms +{ + partial class fmxModuleDetail + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxModuleDetail)); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.btnClose = new DevExpress.XtraEditors.SimpleButton(); + this.btnNext = new DevExpress.XtraEditors.SimpleButton(); + this.btnPrev = new DevExpress.XtraEditors.SimpleButton(); + this.Root = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + this.ShelfStatus = new LFP_Manager.Controls.ucShelfStatus(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.Root)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.btnClose); + this.layoutControl1.Controls.Add(this.btnNext); + this.layoutControl1.Controls.Add(this.btnPrev); + this.layoutControl1.Controls.Add(this.ShelfStatus); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1270, 387, 650, 400); + this.layoutControl1.Root = this.Root; + this.layoutControl1.Size = new System.Drawing.Size(1078, 648); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // btnClose + // + this.btnClose.Location = new System.Drawing.Point(929, 604); + this.btnClose.Name = "btnClose"; + this.btnClose.Size = new System.Drawing.Size(146, 41); + this.btnClose.StyleController = this.layoutControl1; + this.btnClose.TabIndex = 7; + this.btnClose.Text = "CLOSE"; + this.btnClose.Click += new System.EventHandler(this.btnClose_Click); + // + // btnNext + // + this.btnNext.Location = new System.Drawing.Point(153, 604); + this.btnNext.Name = "btnNext"; + this.btnNext.Size = new System.Drawing.Size(146, 41); + this.btnNext.StyleController = this.layoutControl1; + this.btnNext.TabIndex = 6; + this.btnNext.Text = "NEXT"; + this.btnNext.Click += new System.EventHandler(this.btnNext_Click); + // + // btnPrev + // + this.btnPrev.Location = new System.Drawing.Point(3, 604); + this.btnPrev.Name = "btnPrev"; + this.btnPrev.Size = new System.Drawing.Size(146, 41); + this.btnPrev.StyleController = this.layoutControl1; + this.btnPrev.TabIndex = 5; + this.btnPrev.Text = "PREV"; + this.btnPrev.Click += new System.EventHandler(this.btnPrev_Click); + // + // Root + // + this.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.Root.GroupBordersVisible = false; + this.Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem1, + this.layoutControlItem2, + this.emptySpaceItem1, + this.layoutControlItem3, + this.layoutControlItem4}); + this.Root.Name = "Root"; + this.Root.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.Root.Size = new System.Drawing.Size(1078, 648); + this.Root.TextVisible = false; + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.btnPrev; + this.layoutControlItem2.Location = new System.Drawing.Point(0, 601); + this.layoutControlItem2.MaxSize = new System.Drawing.Size(0, 45); + this.layoutControlItem2.MinSize = new System.Drawing.Size(89, 45); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(150, 45); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.Location = new System.Drawing.Point(300, 601); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(626, 45); + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.btnNext; + this.layoutControlItem3.Location = new System.Drawing.Point(150, 601); + this.layoutControlItem3.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(150, 45); + this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextVisible = false; + // + // layoutControlItem4 + // + this.layoutControlItem4.Control = this.btnClose; + this.layoutControlItem4.Location = new System.Drawing.Point(926, 601); + this.layoutControlItem4.MinSize = new System.Drawing.Size(89, 26); + this.layoutControlItem4.Name = "layoutControlItem4"; + this.layoutControlItem4.Size = new System.Drawing.Size(150, 45); + this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem4.TextVisible = false; + // + // ShelfStatus + // + this.ShelfStatus.Location = new System.Drawing.Point(3, 3); + this.ShelfStatus.Name = "ShelfStatus"; + this.ShelfStatus.Size = new System.Drawing.Size(1072, 597); + this.ShelfStatus.TabIndex = 4; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.ShelfStatus; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.MinSize = new System.Drawing.Size(772, 247); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(1076, 601); + this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // fmxModuleDetail + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1078, 648); + this.Controls.Add(this.layoutControl1); + this.IconOptions.Image = ((System.Drawing.Image)(resources.GetObject("fmxModuleDetail.IconOptions.Image"))); + this.Name = "fmxModuleDetail"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fmxModuleDetail"; + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.Root)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private Controls.ucShelfStatus ShelfStatus; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraEditors.SimpleButton btnClose; + private DevExpress.XtraEditors.SimpleButton btnNext; + private DevExpress.XtraEditors.SimpleButton btnPrev; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxModuleDetail.cs b/LFP_Manager/Forms/fmxModuleDetail.cs new file mode 100644 index 0000000..10669e6 --- /dev/null +++ b/LFP_Manager/Forms/fmxModuleDetail.cs @@ -0,0 +1,114 @@ +using DevExpress.XtraEditors; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +using LFP_Manager.DataStructure; + +namespace LFP_Manager.Forms +{ + public partial class fmxModuleDetail : DevExpress.XtraEditors.XtraForm + { + #region VARIABLES + private int ModuleID = 1; + private CommConfig Config; + private DeviceSystemData[] DeviceSystems; + + #endregion + + #region COSTRUCTORS + + public fmxModuleDetail(int mID, ref CommConfig aConfig, ref DeviceSystemData[] mSystemData) + { + InitializeComponent(); + + ModuleID = mID; + Config = aConfig; + DeviceSystems = mSystemData; + + this.Text = String.Format("MODULE [#{0:00}]" + , mID + ); + ShelfStatus.Start(mID, ref aConfig, ref DeviceSystems); + } + + #endregion + + #region PUBLIC FUNCTION + + public void SetModuleID(int mID) + { + ShelfStatus.ModuleIDSet(mID); + + if (this.InvokeRequired) + { + this.Invoke(new MethodInvoker(delegate () + { + this.Text = String.Format("MODULE [#{0:00}]", mID); + })); + } + else + { + this.Text = String.Format("MODULE [#{0:00}]", mID); + } + } + + public int GetModuleID() + { + return ShelfStatus.ModuleIDGet(); + } + #endregion + + #region UPDATE DATA + + public void UpdateData(ref DeviceSystemData[] mSystemData) + { + ShelfStatus.UpdateData(ref mSystemData); + } + + #endregion + + #region BUTTON EVENT + private void btnPrev_Click(object sender, EventArgs e) + { + if (ModuleID == 1) + { + ModuleID = Config.ModuleQty; + } + else + { + ModuleID--; + } + ShelfStatus.ModuleIDSet(ModuleID); + ShelfStatus.UpdateData(ref DeviceSystems); + Text = string.Format("Module Status [#{0:00}]", ModuleID); + } + + private void btnNext_Click(object sender, EventArgs e) + { + if (ModuleID == Config.ModuleQty) + { + ModuleID = 1; + } + else + { + ModuleID++; + } + ShelfStatus.ModuleIDSet(ModuleID); + ShelfStatus.UpdateData(ref DeviceSystems); + Text = string.Format("Module Status [#{0:00}]", ModuleID); + } + + private void btnClose_Click(object sender, EventArgs e) + { + Close(); + } + #endregion + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxModuleDetail.resx b/LFP_Manager/Forms/fmxModuleDetail.resx new file mode 100644 index 0000000..0d93685 --- /dev/null +++ b/LFP_Manager/Forms/fmxModuleDetail.resx @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAABMxJREFUWEflVWtsFVUQPrdtSvilMRIVY8T4h1/aoDGKqIWCIBXR+IgaAmriD/CR + SIyVYjSSPmhLrVVTBa6tQNGIBSqYCEEera34KCqFEmgLNa34qPRaeqHv23G+2Z3tXrp3u/iHGCeZnN09 + M2e++WbOrKFLLP8dACMjI87qp2oTVAIBcB8Y8zncvRcUxEUxoIdGon3UdbbX0TPdvdR9vl/23HZBZFwA + euDQcEzedze00aSF79Ckx9+nKx8rc3Tyo2V0+GSn2AyzbVAgvgD0gFgsRsOsfQNDNPXZCjLpq8nc9xaZ + ucWW4vmuPJqZ9Rm8xDZIcEggBjT7VR8fJHNnLiUveNsKOr/EUn5Ovp+/MYhNe5vEFj5BWEgIQJ1BJ5qr + 5dcITcwsoZBmzIFDeBcA9jq7iK554gOK9PQJC8KEfVYiGbcEmv0Db1aTuTufkjKt7CXgvWu4BKw2C0lg + YUYevbTugPgM2iz4iScAzX5waFjePz/YSmZWgUWzBuJSLF+7nx7J3SlB5Rv2GMwEXrUhxyvFGABqiMaD + 87neAbrxqTCF5hRx9hbVoTlr6CrufDRly+kIpc4rpiQO6oCbWUDpWVvsJPxZGAsAyg5KffZHdXGNJ+s9 + +bRhz1HZh7xa8bU0oGMDEPxeufeY7PuxEAdAjfQeH2/vsrJj9coOB6PRengITVmyXpjRxgzZDfk3Dy3Y + gFGN4RbPEgAAZP7r26zGc+rL2fEt+Kn1TweA9smWmuNim8pDCgxgxfsKZgeiLFwoDgBs6qGQ7fUtdtcn + 6HAOjMxgj17AikFk0t7gkuWRmZ5L5o4cMrfnUE1jB9uOMusGIgD0g0w8NoqeH6Api9eTySi06LQpvW7R + Ojp7rl8Cs5P4uAX/hWwGmF1RJ5mv3FBHr5Tto+pvWmXfi4U4BpTOrPLa+KuFldn4lGmGACSGTUPzH7Tn + 0C9UsfsIlWxtoPCXjfTF96dox7etcnWhO787SZ981UT1TactXwbvZsHoi9JztO0vuceotwTH4OGun51d + JVmrHcB2MxsdnT104HA7vcYZX79orVUCph2ApRQzuBTTc+jyh96l385ExzQkA7AecDAkY0UVB1w9mj0r + bsKRtk4ZyQrAS/C9fFcjXc1/RsNzI3VhKaXwORMetBpycfEusXOXgksw2nib9x3j+5vvTDy511wK3HMI + slZHrKrICnua2YmOCE19+kOrh7SJsc4qpP0/t4uNgjB4wAGo6bVPMoUZRaONx1ncsCRMUZ6GsIFCFARE + QejzwOCQPDfzz+syvopJ87SUDCC9gG5etpFt+AZxXAA2vf2Ww3LuXtTMoR4OXPtt9c2yr9m7g7tF9uy1 + 3wZRWv3j2Gbm95Lth2Qf11duQeOpTmm8FM4agVMWlErN5q7cKoZe18dL1AaZwQd609KNMj1RTpydzP10 + xcPv0e9dUbbjEuBeT3u+0upcrhmMETyFJ96Jjq64xgsKAmqBJqrlISQ3gumXs3memNtWUSZPWYjJCtdS + 2nObaNoLlQLk1hc3Uxo3UGHVD2Lg1/V+Ah/tmZfDNZT2TLmcjRi3sCLmDvzmUYdEguw1+MWAcPv4+aH/ + nFGMYKryzvVR8TskkaiPnuUVA+JMQi+F6Ppv5MLzvNT5F1wq+b8DIPoHjJf5qaq9hPwAAAAASUVORK5C + YII= + + + \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxParamConfig.Designer.cs b/LFP_Manager/Forms/fmxParamConfig.Designer.cs new file mode 100644 index 0000000..1222f6a --- /dev/null +++ b/LFP_Manager/Forms/fmxParamConfig.Designer.cs @@ -0,0 +1,818 @@ +namespace LFP_Manager.Forms +{ + partial class fmxParamConfig + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmxParamConfig)); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.gbDefaultParam = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl7 = new DevExpress.XtraLayout.LayoutControl(); + this.btnDefaultSet = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControlGroup7 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem22 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem4 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.gbCurrentParam = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl5 = new DevExpress.XtraLayout.LayoutControl(); + this.layoutControlGroup5 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.gbDchTempParam = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl4 = new DevExpress.XtraLayout.LayoutControl(); + this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.gbChaTempParam = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl(); + this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.gbVoltageParamSet = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl(); + this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.btnClose = new DevExpress.XtraEditors.SimpleButton(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem19 = new DevExpress.XtraLayout.LayoutControlItem(); + this.emptySpaceItem3 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlGroup6 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.tmrDisplay = new System.Windows.Forms.Timer(this.components); + this.ucSocParam = new LFP_Manager.Controls.ucParamSet(); + this.ucDOCParam = new LFP_Manager.Controls.ucParamSet(); + this.ucCOCParam = new LFP_Manager.Controls.ucParamSet(); + this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem15 = new DevExpress.XtraLayout.LayoutControlItem(); + this.ucDLTParam = new LFP_Manager.Controls.ucParamSet(); + this.ucDHTParam = new LFP_Manager.Controls.ucParamSet(); + this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem(); + this.ucCLTParam = new LFP_Manager.Controls.ucParamSet(); + this.ucCHTParam = new LFP_Manager.Controls.ucParamSet(); + this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem(); + this.ucSUVParam = new LFP_Manager.Controls.ucParamSet(); + this.ucSOVParam = new LFP_Manager.Controls.ucParamSet(); + this.ucCUVParam = new LFP_Manager.Controls.ucParamSet(); + this.ucCOVParam = new LFP_Manager.Controls.ucParamSet(); + this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem16 = new DevExpress.XtraLayout.LayoutControlItem(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.gbDefaultParam)).BeginInit(); + this.gbDefaultParam.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl7)).BeginInit(); + this.layoutControl7.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbCurrentParam)).BeginInit(); + this.gbCurrentParam.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl5)).BeginInit(); + this.layoutControl5.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbDchTempParam)).BeginInit(); + this.gbDchTempParam.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).BeginInit(); + this.layoutControl4.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbChaTempParam)).BeginInit(); + this.gbChaTempParam.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit(); + this.layoutControl3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbVoltageParamSet)).BeginInit(); + this.gbVoltageParamSet.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit(); + this.layoutControl2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).BeginInit(); + this.SuspendLayout(); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.ucSocParam); + this.layoutControl1.Controls.Add(this.gbDefaultParam); + this.layoutControl1.Controls.Add(this.gbCurrentParam); + this.layoutControl1.Controls.Add(this.gbDchTempParam); + this.layoutControl1.Controls.Add(this.gbChaTempParam); + this.layoutControl1.Controls.Add(this.gbVoltageParamSet); + this.layoutControl1.Controls.Add(this.btnClose); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(0, 0); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1155, 88, 654, 350); + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(925, 777); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // gbDefaultParam + // + this.gbDefaultParam.Controls.Add(this.layoutControl7); + this.gbDefaultParam.Location = new System.Drawing.Point(694, 645); + this.gbDefaultParam.Name = "gbDefaultParam"; + this.gbDefaultParam.Size = new System.Drawing.Size(228, 62); + this.gbDefaultParam.TabIndex = 13; + this.gbDefaultParam.Text = " Default Paramter"; + // + // layoutControl7 + // + this.layoutControl7.Controls.Add(this.btnDefaultSet); + this.layoutControl7.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl7.Location = new System.Drawing.Point(2, 23); + this.layoutControl7.Name = "layoutControl7"; + this.layoutControl7.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1212, 252, 614, 350); + this.layoutControl7.Root = this.layoutControlGroup7; + this.layoutControl7.Size = new System.Drawing.Size(224, 37); + this.layoutControl7.TabIndex = 0; + this.layoutControl7.Text = "layoutControl7"; + // + // btnDefaultSet + // + this.btnDefaultSet.Location = new System.Drawing.Point(130, 5); + this.btnDefaultSet.Name = "btnDefaultSet"; + this.btnDefaultSet.Size = new System.Drawing.Size(89, 27); + this.btnDefaultSet.StyleController = this.layoutControl7; + this.btnDefaultSet.TabIndex = 5; + this.btnDefaultSet.Text = "Set"; + this.btnDefaultSet.Click += new System.EventHandler(this.btnDefaultSet_Click); + // + // layoutControlGroup7 + // + this.layoutControlGroup7.CustomizationFormText = "layoutControlGroup7"; + this.layoutControlGroup7.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup7.GroupBordersVisible = false; + this.layoutControlGroup7.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem22, + this.emptySpaceItem4}); + this.layoutControlGroup7.Name = "Root"; + this.layoutControlGroup7.Padding = new DevExpress.XtraLayout.Utils.Padding(3, 3, 3, 3); + this.layoutControlGroup7.Size = new System.Drawing.Size(224, 37); + this.layoutControlGroup7.TextVisible = false; + // + // layoutControlItem22 + // + this.layoutControlItem22.Control = this.btnDefaultSet; + this.layoutControlItem22.CustomizationFormText = "layoutControlItem22"; + this.layoutControlItem22.Location = new System.Drawing.Point(125, 0); + this.layoutControlItem22.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem22.Name = "layoutControlItem22"; + this.layoutControlItem22.Size = new System.Drawing.Size(93, 31); + this.layoutControlItem22.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem22.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem22.TextVisible = false; + // + // emptySpaceItem4 + // + this.emptySpaceItem4.AllowHotTrack = false; + this.emptySpaceItem4.Location = new System.Drawing.Point(0, 0); + this.emptySpaceItem4.Name = "emptySpaceItem4"; + this.emptySpaceItem4.Size = new System.Drawing.Size(125, 31); + this.emptySpaceItem4.TextSize = new System.Drawing.Size(0, 0); + // + // gbCurrentParam + // + this.gbCurrentParam.Controls.Add(this.layoutControl5); + this.gbCurrentParam.Location = new System.Drawing.Point(3, 431); + this.gbCurrentParam.Name = "gbCurrentParam"; + this.gbCurrentParam.Size = new System.Drawing.Size(455, 210); + this.gbCurrentParam.TabIndex = 10; + this.gbCurrentParam.Text = "Current Parameter"; + // + // layoutControl5 + // + this.layoutControl5.Controls.Add(this.ucDOCParam); + this.layoutControl5.Controls.Add(this.ucCOCParam); + this.layoutControl5.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl5.Location = new System.Drawing.Point(2, 23); + this.layoutControl5.Name = "layoutControl5"; + this.layoutControl5.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(757, 268, 250, 350); + this.layoutControl5.Root = this.layoutControlGroup5; + this.layoutControl5.Size = new System.Drawing.Size(451, 185); + this.layoutControl5.TabIndex = 0; + this.layoutControl5.Text = "layoutControl5"; + // + // layoutControlGroup5 + // + this.layoutControlGroup5.CustomizationFormText = "layoutControlGroup5"; + this.layoutControlGroup5.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup5.GroupBordersVisible = false; + this.layoutControlGroup5.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem14, + this.layoutControlItem15}); + this.layoutControlGroup5.Name = "layoutControlGroup5"; + this.layoutControlGroup5.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + this.layoutControlGroup5.Size = new System.Drawing.Size(451, 185); + this.layoutControlGroup5.TextVisible = false; + // + // gbDchTempParam + // + this.gbDchTempParam.Controls.Add(this.layoutControl4); + this.gbDchTempParam.Location = new System.Drawing.Point(462, 217); + this.gbDchTempParam.Name = "gbDchTempParam"; + this.gbDchTempParam.Size = new System.Drawing.Size(460, 210); + this.gbDchTempParam.TabIndex = 9; + this.gbDchTempParam.Text = "Discharge Temp Parameter"; + // + // layoutControl4 + // + this.layoutControl4.Controls.Add(this.ucDLTParam); + this.layoutControl4.Controls.Add(this.ucDHTParam); + this.layoutControl4.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl4.Location = new System.Drawing.Point(2, 23); + this.layoutControl4.Name = "layoutControl4"; + this.layoutControl4.Root = this.layoutControlGroup4; + this.layoutControl4.Size = new System.Drawing.Size(456, 185); + this.layoutControl4.TabIndex = 0; + this.layoutControl4.Text = "layoutControl4"; + // + // layoutControlGroup4 + // + this.layoutControlGroup4.CustomizationFormText = "layoutControlGroup4"; + this.layoutControlGroup4.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup4.GroupBordersVisible = false; + this.layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem12, + this.layoutControlItem13}); + this.layoutControlGroup4.Name = "layoutControlGroup4"; + this.layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + this.layoutControlGroup4.Size = new System.Drawing.Size(456, 185); + this.layoutControlGroup4.TextVisible = false; + // + // gbChaTempParam + // + this.gbChaTempParam.Controls.Add(this.layoutControl3); + this.gbChaTempParam.Location = new System.Drawing.Point(3, 217); + this.gbChaTempParam.Name = "gbChaTempParam"; + this.gbChaTempParam.Size = new System.Drawing.Size(455, 210); + this.gbChaTempParam.TabIndex = 8; + this.gbChaTempParam.Text = "Charge Temp Parameter"; + // + // layoutControl3 + // + this.layoutControl3.Controls.Add(this.ucCLTParam); + this.layoutControl3.Controls.Add(this.ucCHTParam); + this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl3.Location = new System.Drawing.Point(2, 23); + this.layoutControl3.Name = "layoutControl3"; + this.layoutControl3.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1273, 246, 250, 350); + this.layoutControl3.Root = this.layoutControlGroup3; + this.layoutControl3.Size = new System.Drawing.Size(451, 185); + this.layoutControl3.TabIndex = 0; + this.layoutControl3.Text = "layoutControl3"; + // + // layoutControlGroup3 + // + this.layoutControlGroup3.CustomizationFormText = "layoutControlGroup3"; + this.layoutControlGroup3.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup3.GroupBordersVisible = false; + this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem9, + this.layoutControlItem10}); + this.layoutControlGroup3.Name = "layoutControlGroup3"; + this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + this.layoutControlGroup3.Size = new System.Drawing.Size(451, 185); + this.layoutControlGroup3.TextVisible = false; + // + // gbVoltageParamSet + // + this.gbVoltageParamSet.Controls.Add(this.layoutControl2); + this.gbVoltageParamSet.Location = new System.Drawing.Point(3, 3); + this.gbVoltageParamSet.Name = "gbVoltageParamSet"; + this.gbVoltageParamSet.Size = new System.Drawing.Size(919, 210); + this.gbVoltageParamSet.TabIndex = 7; + this.gbVoltageParamSet.Text = "-"; + // + // layoutControl2 + // + this.layoutControl2.Controls.Add(this.ucSUVParam); + this.layoutControl2.Controls.Add(this.ucSOVParam); + this.layoutControl2.Controls.Add(this.ucCUVParam); + this.layoutControl2.Controls.Add(this.ucCOVParam); + this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl2.Location = new System.Drawing.Point(2, 23); + this.layoutControl2.Name = "layoutControl2"; + this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1218, 0, 650, 400); + this.layoutControl2.Root = this.layoutControlGroup2; + this.layoutControl2.Size = new System.Drawing.Size(915, 185); + this.layoutControl2.TabIndex = 0; + this.layoutControl2.Text = "layoutControl2"; + // + // layoutControlGroup2 + // + this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2"; + this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup2.GroupBordersVisible = false; + this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem4, + this.layoutControlItem5, + this.layoutControlItem6, + this.layoutControlItem7}); + this.layoutControlGroup2.Name = "Root"; + this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + this.layoutControlGroup2.Size = new System.Drawing.Size(915, 185); + this.layoutControlGroup2.TextVisible = false; + // + // btnClose + // + this.btnClose.Location = new System.Drawing.Point(3, 711); + this.btnClose.Name = "btnClose"; + this.btnClose.Size = new System.Drawing.Size(919, 63); + this.btnClose.StyleController = this.layoutControl1; + this.btnClose.TabIndex = 6; + this.btnClose.Text = "CLOSE"; + this.btnClose.Click += new System.EventHandler(this.btnCancel_Click); + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem3, + this.layoutControlItem1, + this.layoutControlItem8, + this.layoutControlItem11, + this.layoutControlItem2, + this.emptySpaceItem1, + this.emptySpaceItem2, + this.layoutControlItem19, + this.emptySpaceItem3, + this.layoutControlGroup6}); + this.layoutControlGroup1.Name = "Root"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup1.Size = new System.Drawing.Size(925, 777); + this.layoutControlGroup1.TextVisible = false; + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.btnClose; + this.layoutControlItem3.CustomizationFormText = "layoutControlItem3"; + this.layoutControlItem3.Location = new System.Drawing.Point(0, 708); + this.layoutControlItem3.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(923, 67); + this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextVisible = false; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.gbVoltageParamSet; + this.layoutControlItem1.CustomizationFormText = "layoutControlItem1"; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.MaxSize = new System.Drawing.Size(0, 214); + this.layoutControlItem1.MinSize = new System.Drawing.Size(424, 214); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(923, 214); + this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextVisible = false; + // + // layoutControlItem8 + // + this.layoutControlItem8.Control = this.gbChaTempParam; + this.layoutControlItem8.CustomizationFormText = "layoutControlItem8"; + this.layoutControlItem8.Location = new System.Drawing.Point(0, 214); + this.layoutControlItem8.MaxSize = new System.Drawing.Size(0, 214); + this.layoutControlItem8.MinSize = new System.Drawing.Size(216, 214); + this.layoutControlItem8.Name = "layoutControlItem8"; + this.layoutControlItem8.Size = new System.Drawing.Size(459, 214); + this.layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem8.TextVisible = false; + // + // layoutControlItem11 + // + this.layoutControlItem11.Control = this.gbDchTempParam; + this.layoutControlItem11.CustomizationFormText = "layoutControlItem11"; + this.layoutControlItem11.Location = new System.Drawing.Point(459, 214); + this.layoutControlItem11.Name = "layoutControlItem11"; + this.layoutControlItem11.Size = new System.Drawing.Size(464, 214); + this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem11.TextVisible = false; + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.gbCurrentParam; + this.layoutControlItem2.CustomizationFormText = "layoutControlItem2"; + this.layoutControlItem2.Location = new System.Drawing.Point(0, 428); + this.layoutControlItem2.MaxSize = new System.Drawing.Size(0, 214); + this.layoutControlItem2.MinSize = new System.Drawing.Size(216, 214); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(459, 214); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextVisible = false; + // + // emptySpaceItem1 + // + this.emptySpaceItem1.AllowHotTrack = false; + this.emptySpaceItem1.CustomizationFormText = "emptySpaceItem1"; + this.emptySpaceItem1.Location = new System.Drawing.Point(0, 642); + this.emptySpaceItem1.Name = "emptySpaceItem1"; + this.emptySpaceItem1.Size = new System.Drawing.Size(459, 66); + this.emptySpaceItem1.TextSize = new System.Drawing.Size(0, 0); + // + // emptySpaceItem2 + // + this.emptySpaceItem2.AllowHotTrack = false; + this.emptySpaceItem2.CustomizationFormText = "emptySpaceItem2"; + this.emptySpaceItem2.Location = new System.Drawing.Point(459, 642); + this.emptySpaceItem2.Name = "emptySpaceItem2"; + this.emptySpaceItem2.Size = new System.Drawing.Size(232, 66); + this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem19 + // + this.layoutControlItem19.Control = this.gbDefaultParam; + this.layoutControlItem19.CustomizationFormText = "layoutControlItem19"; + this.layoutControlItem19.Location = new System.Drawing.Point(691, 642); + this.layoutControlItem19.Name = "layoutControlItem19"; + this.layoutControlItem19.Size = new System.Drawing.Size(232, 66); + this.layoutControlItem19.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem19.TextVisible = false; + // + // emptySpaceItem3 + // + this.emptySpaceItem3.AllowHotTrack = false; + this.emptySpaceItem3.Location = new System.Drawing.Point(459, 428); + this.emptySpaceItem3.Name = "emptySpaceItem3"; + this.emptySpaceItem3.Size = new System.Drawing.Size(232, 214); + this.emptySpaceItem3.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlGroup6 + // + this.layoutControlGroup6.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem16}); + this.layoutControlGroup6.Location = new System.Drawing.Point(691, 428); + this.layoutControlGroup6.Name = "layoutControlGroup6"; + this.layoutControlGroup6.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup6.Size = new System.Drawing.Size(232, 214); + this.layoutControlGroup6.Text = "SOC Parameter"; + // + // tmrDisplay + // + this.tmrDisplay.Interval = 500; + this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick); + // + // ucSocParam + // + this.ucSocParam.Location = new System.Drawing.Point(698, 456); + this.ucSocParam.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.ucSocParam.Name = "ucSocParam"; + this.ucSocParam.Size = new System.Drawing.Size(220, 181); + this.ucSocParam.TabIndex = 14; + // + // ucDOCParam + // + this.ucDOCParam.Location = new System.Drawing.Point(227, 2); + this.ucDOCParam.Name = "ucDOCParam"; + this.ucDOCParam.Size = new System.Drawing.Size(222, 181); + this.ucDOCParam.TabIndex = 5; + // + // ucCOCParam + // + this.ucCOCParam.Location = new System.Drawing.Point(2, 2); + this.ucCOCParam.Name = "ucCOCParam"; + this.ucCOCParam.Size = new System.Drawing.Size(221, 181); + this.ucCOCParam.TabIndex = 4; + // + // layoutControlItem14 + // + this.layoutControlItem14.Control = this.ucCOCParam; + this.layoutControlItem14.CustomizationFormText = "layoutControlItem14"; + this.layoutControlItem14.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem14.Name = "layoutControlItem14"; + this.layoutControlItem14.Size = new System.Drawing.Size(225, 185); + this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem14.TextVisible = false; + // + // layoutControlItem15 + // + this.layoutControlItem15.Control = this.ucDOCParam; + this.layoutControlItem15.CustomizationFormText = "layoutControlItem15"; + this.layoutControlItem15.Location = new System.Drawing.Point(225, 0); + this.layoutControlItem15.Name = "layoutControlItem15"; + this.layoutControlItem15.Size = new System.Drawing.Size(226, 185); + this.layoutControlItem15.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem15.TextVisible = false; + // + // ucDLTParam + // + this.ucDLTParam.Location = new System.Drawing.Point(229, 2); + this.ucDLTParam.Name = "ucDLTParam"; + this.ucDLTParam.Size = new System.Drawing.Size(225, 181); + this.ucDLTParam.TabIndex = 5; + // + // ucDHTParam + // + this.ucDHTParam.Location = new System.Drawing.Point(2, 2); + this.ucDHTParam.Name = "ucDHTParam"; + this.ucDHTParam.Size = new System.Drawing.Size(223, 181); + this.ucDHTParam.TabIndex = 4; + // + // layoutControlItem12 + // + this.layoutControlItem12.Control = this.ucDHTParam; + this.layoutControlItem12.CustomizationFormText = "layoutControlItem12"; + this.layoutControlItem12.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem12.Name = "layoutControlItem12"; + this.layoutControlItem12.Size = new System.Drawing.Size(227, 185); + this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem12.TextVisible = false; + // + // layoutControlItem13 + // + this.layoutControlItem13.Control = this.ucDLTParam; + this.layoutControlItem13.CustomizationFormText = "layoutControlItem13"; + this.layoutControlItem13.Location = new System.Drawing.Point(227, 0); + this.layoutControlItem13.Name = "layoutControlItem13"; + this.layoutControlItem13.Size = new System.Drawing.Size(229, 185); + this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem13.TextVisible = false; + // + // ucCLTParam + // + this.ucCLTParam.Location = new System.Drawing.Point(227, 2); + this.ucCLTParam.Name = "ucCLTParam"; + this.ucCLTParam.Size = new System.Drawing.Size(222, 181); + this.ucCLTParam.TabIndex = 5; + // + // ucCHTParam + // + this.ucCHTParam.Location = new System.Drawing.Point(2, 2); + this.ucCHTParam.Name = "ucCHTParam"; + this.ucCHTParam.Size = new System.Drawing.Size(221, 181); + this.ucCHTParam.TabIndex = 4; + // + // layoutControlItem9 + // + this.layoutControlItem9.Control = this.ucCHTParam; + this.layoutControlItem9.CustomizationFormText = "layoutControlItem9"; + this.layoutControlItem9.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem9.Name = "layoutControlItem9"; + this.layoutControlItem9.Size = new System.Drawing.Size(225, 185); + this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem9.TextVisible = false; + // + // layoutControlItem10 + // + this.layoutControlItem10.Control = this.ucCLTParam; + this.layoutControlItem10.CustomizationFormText = "layoutControlItem10"; + this.layoutControlItem10.Location = new System.Drawing.Point(225, 0); + this.layoutControlItem10.Name = "layoutControlItem10"; + this.layoutControlItem10.Size = new System.Drawing.Size(226, 185); + this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem10.TextVisible = false; + // + // ucSUVParam + // + this.ucSUVParam.Location = new System.Drawing.Point(687, 2); + this.ucSUVParam.Name = "ucSUVParam"; + this.ucSUVParam.Size = new System.Drawing.Size(226, 181); + this.ucSUVParam.TabIndex = 7; + // + // ucSOVParam + // + this.ucSOVParam.Location = new System.Drawing.Point(460, 2); + this.ucSOVParam.Name = "ucSOVParam"; + this.ucSOVParam.Size = new System.Drawing.Size(223, 181); + this.ucSOVParam.TabIndex = 6; + // + // ucCUVParam + // + this.ucCUVParam.Location = new System.Drawing.Point(231, 2); + this.ucCUVParam.Name = "ucCUVParam"; + this.ucCUVParam.Size = new System.Drawing.Size(225, 181); + this.ucCUVParam.TabIndex = 5; + // + // ucCOVParam + // + this.ucCOVParam.Location = new System.Drawing.Point(2, 2); + this.ucCOVParam.Name = "ucCOVParam"; + this.ucCOVParam.Size = new System.Drawing.Size(225, 181); + this.ucCOVParam.TabIndex = 4; + // + // layoutControlItem4 + // + this.layoutControlItem4.Control = this.ucCOVParam; + this.layoutControlItem4.CustomizationFormText = "layoutControlItem4"; + this.layoutControlItem4.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem4.Name = "layoutControlItem4"; + this.layoutControlItem4.Size = new System.Drawing.Size(229, 185); + this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem4.TextVisible = false; + // + // layoutControlItem5 + // + this.layoutControlItem5.Control = this.ucCUVParam; + this.layoutControlItem5.CustomizationFormText = "layoutControlItem5"; + this.layoutControlItem5.Location = new System.Drawing.Point(229, 0); + this.layoutControlItem5.Name = "layoutControlItem5"; + this.layoutControlItem5.Size = new System.Drawing.Size(229, 185); + this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem5.TextVisible = false; + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.ucSOVParam; + this.layoutControlItem6.CustomizationFormText = "layoutControlItem6"; + this.layoutControlItem6.Location = new System.Drawing.Point(458, 0); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(227, 185); + this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem6.TextVisible = false; + // + // layoutControlItem7 + // + this.layoutControlItem7.Control = this.ucSUVParam; + this.layoutControlItem7.CustomizationFormText = "layoutControlItem7"; + this.layoutControlItem7.Location = new System.Drawing.Point(685, 0); + this.layoutControlItem7.Name = "layoutControlItem7"; + this.layoutControlItem7.Size = new System.Drawing.Size(230, 185); + this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem7.TextVisible = false; + // + // layoutControlItem16 + // + this.layoutControlItem16.Control = this.ucSocParam; + this.layoutControlItem16.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem16.Name = "layoutControlItem16"; + this.layoutControlItem16.Size = new System.Drawing.Size(224, 185); + this.layoutControlItem16.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem16.TextVisible = false; + // + // fmxParamConfig + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(925, 777); + this.Controls.Add(this.layoutControl1); + this.IconOptions.Icon = ((System.Drawing.Icon)(resources.GetObject("fmxParamConfig.IconOptions.Icon"))); + this.Name = "fmxParamConfig"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Parameter Config"; + this.Load += new System.EventHandler(this.fmxParamConfig_Load); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.gbDefaultParam)).EndInit(); + this.gbDefaultParam.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl7)).EndInit(); + this.layoutControl7.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem22)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbCurrentParam)).EndInit(); + this.gbCurrentParam.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl5)).EndInit(); + this.layoutControl5.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbDchTempParam)).EndInit(); + this.gbDchTempParam.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).EndInit(); + this.layoutControl4.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbChaTempParam)).EndInit(); + this.gbChaTempParam.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit(); + this.layoutControl3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gbVoltageParamSet)).EndInit(); + this.gbVoltageParamSet.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit(); + this.layoutControl2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem19)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem15)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem16)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private DevExpress.XtraEditors.SimpleButton btnClose; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private System.Windows.Forms.Timer tmrDisplay; + private DevExpress.XtraEditors.GroupControl gbVoltageParamSet; + private DevExpress.XtraLayout.LayoutControl layoutControl2; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private Controls.ucParamSet ucCOVParam; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private Controls.ucParamSet ucCUVParam; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private Controls.ucParamSet ucSUVParam; + private Controls.ucParamSet ucSOVParam; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7; + private DevExpress.XtraEditors.GroupControl gbChaTempParam; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8; + private DevExpress.XtraLayout.LayoutControl layoutControl3; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3; + private Controls.ucParamSet ucCLTParam; + private Controls.ucParamSet ucCHTParam; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10; + private DevExpress.XtraEditors.GroupControl gbDchTempParam; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11; + private DevExpress.XtraLayout.LayoutControl layoutControl4; + private Controls.ucParamSet ucDLTParam; + private Controls.ucParamSet ucDHTParam; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13; + private DevExpress.XtraEditors.GroupControl gbCurrentParam; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.LayoutControl layoutControl5; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup5; + private Controls.ucParamSet ucDOCParam; + private Controls.ucParamSet ucCOCParam; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem15; + private DevExpress.XtraEditors.GroupControl gbDefaultParam; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem19; + private DevExpress.XtraLayout.LayoutControl layoutControl7; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup7; + private DevExpress.XtraEditors.SimpleButton btnDefaultSet; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem22; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem3; + private Controls.ucParamSet ucSocParam; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup6; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem16; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem4; + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxParamConfig.cs b/LFP_Manager/Forms/fmxParamConfig.cs new file mode 100644 index 0000000..e2c3f51 --- /dev/null +++ b/LFP_Manager/Forms/fmxParamConfig.cs @@ -0,0 +1,399 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Linq; +using System.Windows.Forms; +using DevExpress.XtraEditors; + +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Controls; + +namespace LFP_Manager.Forms +{ + public partial class fmxParamConfig : DevExpress.XtraEditors.XtraForm + { + #region DELEGATE + public delegate void ParamUpdateEvent(object sendor); + public delegate void ParamCmdEvent(int sId, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib); + #endregion + + #region VARIABLES + + private int SystemId = 0; + private CommConfig Config = null; + private DeviceParamData Param; + private DeviceCalibration Calib; + + private ucParamSet[] ParamSet = null; + + private int PasswordResult = 0; + + public event ParamUpdateEvent OnUpdate = null; + public event ParamCmdEvent OnCommand = null; + + #endregion + + #region CONSTRUCTORS + + public fmxParamConfig() + { + InitializeComponent(); + } + + public fmxParamConfig(int sId, CommConfig aConfig, DeviceParamData aParam) + { + InitializeComponent(); + + Config = aConfig; + SystemId = sId; + Param = aParam; + + InitComponent(); + + gbVoltageParamSet.Text = "Parameter Config"; + + tmrDisplay.Enabled = true; + } + + public void InitComponent() + { + ParamSet = new ucParamSet[11]; + + + // Cell Voltage Parameter + ParamSet[0] = ucCOVParam; + ParamSet[0].SetParamName(0, "Cell Over Voltage"); + ParamSet[0].SetParamName(1, "mV"); + ParamSet[0].SetId(0); + ParamSet[0].OnCommand += OnCmdEvent; + + ParamSet[1] = ucCUVParam; + ParamSet[1].SetParamName(0, "Cell Under Voltage"); + ParamSet[1].SetParamName(1, "mV"); + ParamSet[1].SetId(1); + ParamSet[1].OnCommand += OnCmdEvent; + //ucCUVParam.EnableItem(0, false); + + // System Voltage Parameter + ParamSet[2] = ucSOVParam; + ParamSet[2].SetParamName(0, "System Over Voltage"); + ParamSet[2].SetParamName(1, "V"); + ParamSet[2].SetId(2); + ParamSet[2].OnCommand += OnCmdEvent; + + ParamSet[3] = ucSUVParam; + ParamSet[3].SetParamName(0, "System Under Voltage"); + ParamSet[3].SetParamName(1, "V"); + ParamSet[3].SetId(3); + ParamSet[3].OnCommand += OnCmdEvent; + //ucSUVParam.EnableItem(0, false); + + // Charge Temperature Parameter + ParamSet[4] = ucCHTParam; + ParamSet[4].SetParamName(0, "Charge High Temp"); + ParamSet[4].SetParamName(1, "C"); + ParamSet[4].SetId(4); + ParamSet[4].OnCommand += OnCmdEvent; + + ParamSet[5] = ucCLTParam; + ParamSet[5].SetParamName(0, "Charge Low Temp"); + ParamSet[5].SetParamName(1, "C"); + ParamSet[5].SetId(5); + ParamSet[5].OnCommand += OnCmdEvent; + + // Discharge Temperature Parameter + ParamSet[6] = ucDHTParam; + ParamSet[6].SetParamName(0, "Discharge High Temp"); + ParamSet[6].SetParamName(1, "C"); + ParamSet[6].SetId(6); + ParamSet[6].OnCommand += OnCmdEvent; + //ucDHTParam.EnableItem(0, false); + + ParamSet[7] = ucDLTParam; + ParamSet[7].SetParamName(0, "Discharge Low Temp"); + ParamSet[7].SetParamName(1, "C"); + ParamSet[7].SetId(7); + ParamSet[7].OnCommand += OnCmdEvent; + //ucDLTParam.EnableItem(0, false); + + // Over Current Parameter + ParamSet[8] = ucCOCParam; + ParamSet[8].SetParamName(0, "Charge Over Current"); + ParamSet[8].SetParamName(1, "A"); + ParamSet[8].SetId(8); + ParamSet[8].OnCommand += OnCmdEvent; + //ucCOCParam.EnableItem(2, false); + + ParamSet[9] = ucDOCParam; + ParamSet[9].SetParamName(0, "Discharge Over Current"); + ParamSet[9].SetParamName(1, "A"); + ParamSet[9].SetId(9); + ParamSet[9].OnCommand += OnCmdEvent; + //ucDOCParam.EnableItem(2, false); + + // Low Capacity Parameter + ParamSet[10] = ucSocParam; + ParamSet[10].SetParamName(0, "SOC"); + ParamSet[10].SetParamName(1, "%"); + ParamSet[10].SetId(10); + ParamSet[10].OnCommand += OnCmdEvent; + ParamSet[10].VisibleItem(0, false); + ParamSet[10].VisibleItem(2, false); + } + + #endregion + + #region COMMAND EVENT + + private void OnCmdEvent(int mode, int flag, ParamData aParam) + { + int cmd = 0; + DeviceParamData wParam = Param.DeepCopy(); + + switch (mode) + { + case 0: // Cell Over Voltage + cmd = csConstData.UART_PARAM_LIST.CELL_OVER_VOLTAGE; + wParam.CellOverVoltageTrip = aParam.Fault; + wParam.CellOverVoltageWarning = aParam.Warning; + wParam.CellOverVoltageRelease = aParam.Release; + break; + case 1: // Cell Under Voltage + cmd = csConstData.UART_PARAM_LIST.CELL_UNDER_VOLTAGE; + wParam.CellUnderVoltageTrip = aParam.Fault; + wParam.CellUnderVoltageWarning = aParam.Warning; + wParam.CellUnderVoltageRelease = aParam.Release; + break; + case 2: // System Over Voltage + cmd = csConstData.UART_PARAM_LIST.PACK_OVER_VOLTAGE; + wParam.SysOverVoltageTrip = aParam.Fault; + wParam.SysOverVoltageWarning = aParam.Warning; + wParam.SysOverVoltageRelease = aParam.Release; + break; + case 3: // System Under Voltage + cmd = csConstData.UART_PARAM_LIST.PACK_UNDER_VOLTAGE; + wParam.SysUnderVoltageTrip = aParam.Fault; + wParam.SysUnderVoltageWarning = aParam.Warning; + wParam.SysUnderVoltageRelease = aParam.Release; + break; + case 4: // Charge High Temperature + cmd = csConstData.UART_PARAM_LIST.CHG_HIGH_TEMPERATURE; + wParam.ChaHighTempTrip = aParam.Fault; + wParam.ChaHighTempWarning = aParam.Warning; + wParam.ChaHighTempRelease = aParam.Release; + break; + case 5: // Charge Low Temperature + cmd = csConstData.UART_PARAM_LIST.CHG_LOW_TEMPERATURE; + wParam.ChaLowTempTrip = aParam.Fault; + wParam.ChaLowTempWarning = aParam.Warning; + wParam.ChaLowTempRelease = aParam.Release; + break; + case 6: // Discharge High Temperature + cmd = csConstData.UART_PARAM_LIST.DCH_HIGH_TEMPERATURE; + wParam.DchHighTempTrip = aParam.Fault; + wParam.DchHighTempWarning = aParam.Warning; + wParam.DchHighTempRelease = aParam.Release; + break; + case 7: // Discharge Low Temperature + cmd = csConstData.UART_PARAM_LIST.DCH_LOW_TEMPERATURE; + wParam.DchLowTempTrip = aParam.Fault; + wParam.DchLowTempWarning = aParam.Warning; + wParam.DchLowTempRelease = aParam.Release; + break; + case 8: // Charge Over Current + cmd = csConstData.UART_PARAM_LIST.CHG_OVER_CURRENT; + wParam.ChaOverCurrentTrip2 = aParam.Fault; + wParam.ChaOverCurrentTrip1 = aParam.Warning; + wParam.ChaOverCurrentReleaseTime = aParam.Release; + break; + case 9: // Discharge Over Current + cmd = csConstData.UART_PARAM_LIST.DCH_OVER_CURRENT; + wParam.DchOverCurrentTrip2 = aParam.Fault; + wParam.DchOverCurrentTrip1 = aParam.Warning; + wParam.DchOverCurrentReleaseTime = aParam.Release; + break; + case 10: + cmd = csConstData.UART_PARAM_LIST.LOW_CAPACITY; + wParam.LowSocTrip = aParam.Fault; + wParam.LowSocWarning = aParam.Warning; + wParam.LowSocRelease = aParam.Release; + break; + case 16: // Default Parameter + cmd = 0; + wParam.DefalutParamOption = aParam.Fault; + wParam.DefalutParamAll = aParam.Release; + break; + case 0x2D: + wParam.ReadParamAll = 0x002D; + cmd = 0x2D; + break; + case 99: + cmd = 200; // All parameter read + break; + } + OnCommand?.Invoke(SystemId, cmd, 6, flag, ref wParam, ref Calib); + } + + #endregion + + #region UPDATE DATA + public void UpdateData(DeviceParamData aParam, DeviceCalibration aCalib) + { + Param = aParam; + Calib = aCalib; + } + #endregion + + #region TIMER EVENT + private void tmrDisplay_Tick(object sender, EventArgs e) + { + DisplayValue(); + + OnUpdate?.Invoke(this); + } + #endregion + + private void DisplayValue() + { + ParamData pData = new ParamData(); + + // Cell Voltage Parameter + pData.Fault = Param.CellOverVoltageTrip; + pData.Warning = Param.CellOverVoltageWarning; + pData.Release = Param.CellOverVoltageRelease; + ucCOVParam.UpdateData(pData); + + pData.Fault = Param.CellUnderVoltageTrip; + pData.Warning = Param.CellUnderVoltageWarning; + pData.Release = Param.CellUnderVoltageRelease; + ucCUVParam.UpdateData(pData); + + // System Voltage Parameter + pData.Fault = Param.SysOverVoltageTrip; + pData.Warning = Param.SysOverVoltageWarning; + pData.Release = Param.SysOverVoltageRelease; + ucSOVParam.UpdateData(pData); + + pData.Fault = Param.SysUnderVoltageTrip; + pData.Warning = Param.SysUnderVoltageWarning; + pData.Release = Param.SysUnderVoltageRelease; + ucSUVParam.UpdateData(pData); + + // Charge Temp Parameter + pData.Fault = Param.ChaHighTempTrip; + pData.Warning = Param.ChaHighTempWarning; + pData.Release = Param.ChaHighTempRelease; + ucCHTParam.UpdateData(pData); + + pData.Fault = Param.ChaLowTempTrip; + pData.Warning = Param.ChaLowTempWarning; + pData.Release = Param.ChaLowTempRelease; + ucCLTParam.UpdateData(pData); + + // Discharge Temp Parameter + pData.Fault = Param.DchHighTempTrip; + pData.Warning = Param.DchHighTempWarning; + pData.Release = Param.DchHighTempRelease; + ucDHTParam.UpdateData(pData); + + pData.Fault = Param.DchLowTempTrip; + pData.Warning = Param.DchLowTempWarning; + pData.Release = Param.DchLowTempRelease; + ucDLTParam.UpdateData(pData); + + // Charge Over Current + pData.Fault = Param.ChaOverCurrentTrip2; + pData.Warning = Param.ChaOverCurrentTrip1; + pData.Release = Param.ChaOverCurrentReleaseTime; + ucCOCParam.UpdateData(pData); + + // Discharge Over Current + pData.Fault = Param.DchOverCurrentTrip2; + pData.Warning = Param.DchOverCurrentTrip1; + pData.Release = Param.DchOverCurrentReleaseTime; + ucDOCParam.UpdateData(pData); + + // SOC Parameter + pData.Fault = Param.LowSocTrip; + pData.Warning = Param.LowSocWarning; + pData.Release = Param.LowSocRelease; + ucSocParam.UpdateData(pData); + } + + #region BUTTON EVENT + private void btnCancel_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void btnGetAll_Click(object sender, EventArgs e) + { + ParamData aa = new ParamData(); + OnCmdEvent(0x2D, 0, aa); + } + + private void btnDefaultSet_Click(object sender, EventArgs e) + { + ParamData aa = new ParamData(); + + OnCmdEvent(16, 1, aa); + + //DefaultTempAlarm(); + } + #endregion + + #region FORM EVENT + private void fmxParamConfig_Load(object sender, EventArgs e) + { + ParamConfig_ReLoad(); + } + + private void ParamConfig_ReLoad() + { + switch (Config.ControlLevel) + { + case 0: // User Level + for (int i = 0; i < ParamSet.Length; i++) + { + ParamSet[i].EnableDisableSetBtn(false); + } + btnDefaultSet.Enabled = false; + break; + case 1: // Technician Level + for (int i = 0; i < ParamSet.Length; i++) + { + ParamSet[i].EnableDisableSetBtn(false); + } + btnDefaultSet.Enabled = false; + break; + case 2: // Engineer Level + for (int i = 0; i < ParamSet.Length; i++) + { + ParamSet[i].EnableDisableSetBtn(true); + } + btnDefaultSet.Enabled = true; + break; + case 3: // Master Level + for (int i = 0; i < ParamSet.Length; i++) + { + ParamSet[i].EnableDisableSetBtn(true); + } + btnDefaultSet.Enabled = true; + break; + default: // User Level + for (int i = 0; i < ParamSet.Length; i++) + { + ParamSet[i].EnableDisableSetBtn(false); + } + btnDefaultSet.Enabled = false; + break; + } + } + #endregion + + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxParamConfig.resx b/LFP_Manager/Forms/fmxParamConfig.resx new file mode 100644 index 0000000..d0a61cc --- /dev/null +++ b/LFP_Manager/Forms/fmxParamConfig.resx @@ -0,0 +1,4574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA + GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/ + ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7///////////////////// + ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff///////// + ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+ + /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7///// + ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc + x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7///////////////////////////// + ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt + e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP + SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7///////// + ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z + WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS + Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8 + +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+ + /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+ + /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO + SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz + 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o + 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9 + /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE + oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG + PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7///// + ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH + PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t + 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/ + ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/ + ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7///////////////////////////// + ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+ + /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ + TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7///////////////// + ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ + TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+ + /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7///// + ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP + SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7///////////////////////////////////////// + ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/ + ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/ + ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7///////////////////////////// + ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/ + ///+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////+/v7////////+/v3////////////////////////+/v3////////+/v7///////////////// + ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7///////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + /////////v7+/v7///////////////////////////////////////////////////////////////// + ///////////////////////////+/v7////////+/v7///////////////////////////////////// + ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7///////////////////// + ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7 + +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9 + /Pz+/v7///////////////////////////////////////////////////////////////////////// + ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM + RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7///////////////////////////////////// + ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL + QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+ + /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP + SgCOSQCPTAKFOwDVvaT////9/Pv+/v7///////////////////////////////////////////////// + ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8 + +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7///////// + /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO + SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF + OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+ + ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/ + //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7///////////////////////// + ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/ + mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79 + /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN + RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ + TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7///// + ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7///// + ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+ + /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ + TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP + SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH + PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/ + ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5 + 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+ + /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ + QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE + oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/ + ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7///////////////////////// + ///////////////////////////////////////////////////////+/v7+//////////////////// + ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+ + /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9 + /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP + SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL + RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7///////////////////////////////// + ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/ + ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7///////// + ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP + SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI + PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/ + ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x + glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7///////////////////////////// + ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM + RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+ + /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/ + ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP + SgCOSgGLRQGTURDz7ef+/v39/f3+/v7///////////////////////////////////////////////// + ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+ + /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7///////////// + ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN + RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9 + /fz9/f3+/v7+/v7///////////////////////////////////////////////////////////////// + ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO + SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7///////////////////////////////////////// + ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO + SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7///// + //////////////////////////////////////////////////////////////////////////////// + ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS + UA/y6+X+/v39/fz+/v7+/v7///////////////////////////////////////////////////////// + ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP + SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7///////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+ + /v7///////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO + SQCOSQGJQQDi0cD////9/Pv+/v7///////////////////////////////////////////////////// + ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J + QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39 + /fz+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz + hFazhFayhFazhVete1TWvqb////9/fz+/v7///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7///////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+ + /f3+/f3///////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v7+//////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////v7+ + /f39//////////////////////////////////////////////////////////////////////////// + ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39 + /fz8/v79/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA + nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1//// + x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV + i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC + jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC + hz8Ap3I//fz7/fz8/v79/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7 + /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8 + +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p + /v39/f38/v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+ + ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb + 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//7+/f39 + /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7//// + 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+ + /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA + j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB + j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB + i0UAlVYZ8+3m/f79/f38/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+//////////////// + /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39 + /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+ + sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+ + /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+//////// + /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+ + /f39/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO + /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39 + 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39 + /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+//////////////////////////// + /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+//// + /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A + kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + jkoCikIC4tHA/////Pv7/v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC + hz4A1r6m/////Pz7/v7+/v7+/////v7+//////////////////////////////////////////////// + /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+ + /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+//////////////////// + /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM + /////Pv6/v7+/v7+/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA + j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+//////////////////////////////////////// + /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+ + /v7+/v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+ + /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7 + /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq//// + /Pv6/v7+/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A + j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA + kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA + j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6 + /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+//////// + /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+ + /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA + xaJ//////Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU + /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA + j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+//////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+//////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+//////////// + 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+ + /////v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39 + /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/ + /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6 + ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+ + /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC + kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB + kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39//// + /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA + hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA + iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A + j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU + z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+//////// + /v7+/////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7//v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn + +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3 + +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8 + /fz8/v7+/////v7+/////v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v///v7+/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT + z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7 + ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A + hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A + fS0AtIdb/f38/Pz8///+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D + kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL + jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+//////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA + jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3 + iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA + jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA + jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK + 6t7S/v7+/fz8/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+//////////////////////// + /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs//// + /Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7 + /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38 + /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fz8 + /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+//////////////////////////////////// + /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+ + /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA + jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A + pnA8/Pv6/fz7/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq + iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+ + /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+//////////// + /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+ + //7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A + 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES + jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+//////////////// + /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6 + /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7 + /v79/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v39 + /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8 + +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+ + /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ + hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ + 8+3m/f39/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+ + /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA + jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA + u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA + j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA + jkkCikQE49PC/v7//fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8 + /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+ + /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7//// + t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA + jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU + hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD + /////fz8//7//v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA + oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC + hj0Az7SX/////fz7//7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//7+ + /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH + jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA + jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT//// + /Pz8/v7//v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA + t4tf/////fz7/v7+/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs + mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6 + /v7+/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v7+ + /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx + +/n3/fz8/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+ + rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA + jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW + k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV + kU8TmVoj8ejg/v39/fz7/v7//f39/v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off + 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v////7+/v7+/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v39/v7+ + ///+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v////// + /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v79/////////v7+/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v79/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////9/Lt9/Pu + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2svnmMrzrGR/////fz7//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ + /v39/fz8/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h + /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0//// + 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC + j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + jUgBlFIO7uTa/////f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB + jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7 + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+ + /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38//////////////////// + /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z + iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+ + sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG//// + /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + hz4Ar35J/v39/fz8/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+//////// + /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38//////////////////////////////// + /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+//////////////////////////////////////////// + /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA + /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW + k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+ + /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+//////////////////// + /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iEAA176j/////fz7//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39//////////////////////////////////////////// + ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38 + /fz8/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEA1buf/////fz8/v7+/v7+//////////////////////////////////////////////////////// + /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+ + /////////////////////////////////////////////////////////////////////////////v7+ + /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+//////////// + /////////////////////////////////////////////////////////////////////fz7////yKaB + hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v///f38////sH9K + hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+//////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oBi0QAnmIj9vHs/v39/v39//////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA + nWAf9vHs/v7+/v79//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo//// + /fz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v///f38//// + 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8//////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/v79+/n3omor + ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm + +PTw/v39/f39//////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sBjEUAmVwb9e/p/v7+/f38//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A + vpVq/////fz7/v/+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8AyKaB/////fz7/v///v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39 + //7///////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC + jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsCiD8Auo9h/////fz8/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE + iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB + 4tC+/////f38/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjUcBk1EN7+Xb/////f39/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj + n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f38////u5Jlhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkBjUgE4M66/////fz7/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR + 7+bd/v7+/f39//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv + +/n4/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0 + rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6 + ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC + hz4AtolZ/////fz8/v3+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA + j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + j0sBikIApGww+vj1/v39/f39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ + j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M + /////Pz7/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkCjkkG4c+7/////fz7/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+///+/v39 + /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d//// + /fz7/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/f38/f38 + 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A + jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sBiD8AyKiE/////fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oBiUEApW4z+vj1/v39/v39//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ + /v7+/f38/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4 + 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD + 49PB/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/Pz7//// + 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6//// + /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A + j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC + iUEAqHQ7+/j2/fz8/v39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jUgBkk8K7ODV/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL//// + /f38/v7+///+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6//////// + ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A + ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38 + /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBiUEA1Lqd/////fv6//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38 + sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+//////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////v7+/v39 + /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq + 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38 + /v39/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjUgBkU4J6NrM/////fz8//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA + jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEArnxG/v7+/f38/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO + 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i//// + /Pz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA + hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39//////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr + vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g + 4M24/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY + llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+//////////////////////////// + /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsCiUEArXpD/v7//f39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB + ikMA1bqf/////fz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39 + /f38/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39 + /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/////////v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI + iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8//// + /fz8//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA + mVsZ8+zl/v38/fz8//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7 + /v7+//7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz7/v7+ + 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf + 9vHs/v79/fz8//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z + iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAi0YAl1gT8+3l/v7+/f39//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA + upFj/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC + hz4AwZty/////fz8/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////f39 + /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC + jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ + hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsChz4At4ta/////fz8/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjUgCkEwL6dzO/////fz7//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD + 38y3/////fz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v/+/f39/v79 + +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////fz8 + /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A + kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK + 5tbG/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBjUcB4M25/////f38/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos + +PTw/fz8/f39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA + kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB + iUAAq3dA/Pr4/fz7/f39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v///fz7 + ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA + j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0oBikMAomgq+vf0/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////Pz7////4M24 + i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiUEA0rea/////fz7/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7 + /v38/v39/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////f38/v79 + +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/f38 + ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + kEwChz4AxaJ8/////fz7/v7+//////////////////////////////////////////////////////// + ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA + 07mb/////Pz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU + /v7+/Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+//// + //////////////////////////////////////////////////////////////////////////////7/ + /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7///////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+//////////////////////////// + /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jEQAm10b9O/p/v7+/f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+//////////////////////////////////////// + /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7 + /v7//v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jUgAklAK6dzO/////f38/v////////////////////////////////////////////////////////// + /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6 + /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng + lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+ + /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiD8Au5Jl/////fz8/v7+//7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+//////////////////// + /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj + /v39/fz8/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+//////////////////////////// + /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8 + ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb//// + /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A + upFj/////fz8/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+ + /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7//////////////////////// + /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf + llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA + kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkBjUcA49LA/////f38/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79 + /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3 + qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8////0baX + iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD + /////fz8/v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA + nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA + qHI4/Pv5/v39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+ + iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + kEsChz8Az7KS/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7 + /v39/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v39 + /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////fz8////59jIj0oD + jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ + /////fz8//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB + llYW7+Xb/v7+/f38/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0wChz8AuIxc/v7+/fz7/v39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+ + /v39/v////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fv6 + ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAjkkBjEYA4M24/////fz8/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa + /////f38//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v39/fz7 + 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB + jUcE3sq2/////Pz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oBikMAomgq+fXy/v39/f39//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/fz7//// + 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq + +vf1/f38/f39//7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39 + tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS + yqqM38u2/////v79/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/v79//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v79/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxWait.Designer.cs b/LFP_Manager/Forms/fmxWait.Designer.cs new file mode 100644 index 0000000..56ddeb2 --- /dev/null +++ b/LFP_Manager/Forms/fmxWait.Designer.cs @@ -0,0 +1,94 @@ +namespace LFP_Manager.Forms +{ + partial class fmxWait + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.progressPanel1 = new DevExpress.XtraWaitForm.ProgressPanel(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // progressPanel1 + // + this.progressPanel1.Appearance.BackColor = System.Drawing.Color.Transparent; + this.progressPanel1.Appearance.Options.UseBackColor = true; + this.progressPanel1.AppearanceCaption.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F); + this.progressPanel1.AppearanceCaption.Options.UseFont = true; + this.progressPanel1.AppearanceDescription.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); + this.progressPanel1.AppearanceDescription.Options.UseFont = true; + this.progressPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.progressPanel1.ImageHorzOffset = 20; + this.progressPanel1.Location = new System.Drawing.Point(0, 16); + this.progressPanel1.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3); + this.progressPanel1.Name = "progressPanel1"; + this.progressPanel1.Size = new System.Drawing.Size(287, 35); + this.progressPanel1.TabIndex = 0; + this.progressPanel1.Text = "progressPanel1"; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.AutoSize = true; + this.tableLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.tableLayoutPanel1.BackColor = System.Drawing.Color.Transparent; + this.tableLayoutPanel1.ColumnCount = 1; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Controls.Add(this.progressPanel1, 0, 0); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.Padding = new System.Windows.Forms.Padding(0, 13, 0, 13); + this.tableLayoutPanel1.RowCount = 1; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(287, 67); + this.tableLayoutPanel1.TabIndex = 1; + // + // fmxWait + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoSize = true; + this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.ClientSize = new System.Drawing.Size(287, 67); + this.Controls.Add(this.tableLayoutPanel1); + this.DoubleBuffered = true; + this.Name = "fmxWait"; + this.ShowOnTopMode = DevExpress.XtraWaitForm.ShowFormOnTopMode.AboveAll; + this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; + this.Text = "Form1"; + this.tableLayoutPanel1.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private DevExpress.XtraWaitForm.ProgressPanel progressPanel1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + } +} diff --git a/LFP_Manager/Forms/fmxWait.cs b/LFP_Manager/Forms/fmxWait.cs new file mode 100644 index 0000000..d7060f6 --- /dev/null +++ b/LFP_Manager/Forms/fmxWait.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using DevExpress.XtraWaitForm; + +namespace LFP_Manager.Forms +{ + public partial class fmxWait : WaitForm + { + public fmxWait() + { + InitializeComponent(); + this.progressPanel1.AutoHeight = true; + } + + #region Overrides + + public override void SetCaption(string caption) + { + base.SetCaption(caption); + this.progressPanel1.Caption = caption; + } + public override void SetDescription(string description) + { + base.SetDescription(description); + this.progressPanel1.Description = description; + } + public override void ProcessCommand(Enum cmd, object arg) + { + base.ProcessCommand(cmd, arg); + } + + #endregion + + public enum WaitFormCommand + { + } + } +} \ No newline at end of file diff --git a/LFP_Manager/Forms/fmxWait.resx b/LFP_Manager/Forms/fmxWait.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/LFP_Manager/Forms/fmxWait.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LFP_Manager/Function/CsCryptoHelper.cs b/LFP_Manager/Function/CsCryptoHelper.cs new file mode 100644 index 0000000..65b5cbb --- /dev/null +++ b/LFP_Manager/Function/CsCryptoHelper.cs @@ -0,0 +1,54 @@ +using System; +using System.IO; +using System.Security.Cryptography; +using System.Text; + +namespace LFP_Manager.Function +{ + class CsCryptoHelper + { + // 고정 키 및 IV (보안상 실제 사용 시 안전하게 관리 필요) + private static readonly string key = "1234567890123456"; // 16글자 = 128bit + private static readonly string iv = "6543210987654321"; // 16글자 = 128bit + + public static string Encrypt(string plainText) + { + using (Aes aesAlg = Aes.Create()) + { + aesAlg.Key = Encoding.UTF8.GetBytes(key); + aesAlg.IV = Encoding.UTF8.GetBytes(iv); + + ICryptoTransform encryptor = aesAlg.CreateEncryptor(); + + using (MemoryStream msEncrypt = new MemoryStream()) + using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) + using (StreamWriter swEncrypt = new StreamWriter(csEncrypt)) + { + swEncrypt.Write(plainText); + swEncrypt.Close(); + return Convert.ToBase64String(msEncrypt.ToArray()); + } + } + } + + public static string Decrypt(string cipherText) + { + using (Aes aesAlg = Aes.Create()) + { + aesAlg.Key = Encoding.UTF8.GetBytes(key); + aesAlg.IV = Encoding.UTF8.GetBytes(iv); + + ICryptoTransform decryptor = aesAlg.CreateDecryptor(); + + byte[] buffer = Convert.FromBase64String(cipherText); + + using (MemoryStream msDecrypt = new MemoryStream(buffer)) + using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)) + using (StreamReader srDecrypt = new StreamReader(csDecrypt)) + { + return srDecrypt.ReadToEnd(); + } + } + } + } +} diff --git a/LFP_Manager/Function/CsMakeDataFunction124050.cs b/LFP_Manager/Function/CsMakeDataFunction124050.cs new file mode 100644 index 0000000..1671f54 --- /dev/null +++ b/LFP_Manager/Function/CsMakeDataFunction124050.cs @@ -0,0 +1,281 @@ +using LFP_Manager.DataStructure; +using LFP_Manager.Utils; +using System; + +namespace LFP_Manager.Function +{ + class csMakeDataFunction124050 + { + private static DeviceSystemData MakeAlarmTripData(int id, short ndata, DeviceSystemData rSystemData) + { + bool[] aData = csUtils.Int16ToBitArray(ndata); + short bFault = rSystemData.StatusData.protection; + short bWarning = rSystemData.StatusData.warning; + int i = 0; + + switch (id) + { + case 0: // Warning + if (aData[i++]) bWarning |= (1 << 2); // Bit 0 : Over voltage warning + else bWarning &= ~(1 << 2); + if (aData[i++]) bWarning |= (1 << 4); // Bit 1 : Cell Over voltage warning + else bWarning &= ~(1 << 4); + if (aData[i++]) bWarning |= (1 << 3); // Bit 2 : Low voltage warning + else bWarning &= ~(1 << 3); + if (aData[i++]) bWarning |= (1 << 5); // Bit 3 : Low cell voltage warning + else bWarning &= ~(1 << 5); + if (aData[i++]) bWarning |= (1 << 6); // Bit 4 : Charge over current warning + else bWarning &= ~(1 << 6); + if (aData[i++]) bWarning |= (1 << 7); // Bit 5 : Discharge over current warning + else bWarning &= ~(1 << 7); + i++; // 06 Abnormal balancing current + i++; // 07 Reserved + if ((aData[8]) || (aData[9])) bWarning |= (1 << 0); // Bit 8 : Charge over temperature warning, Bit 9 : Discharge over temperature warning + else bWarning &= ~(1 << 0); + i++; // 08 + i++; // 09 + if ((aData[10]) || (aData[11])) bWarning |= (1 << 1); // Bit 10 : Charge low temperature warning, Bit 11 : Discharge low temperature warning + else bWarning &= ~(1 << 1); + i++; // 10 + i++; // 11 + if (aData[i++]) bWarning |= (1 << 11); // 12 : Low capacity warning + else bWarning &= ~(1 << 11); + i++; // 13 + if (aData[i++]) bWarning |= (1 << 9); // 14 Cell Voltage Difference Warning + else bWarning &= ~(1 << 9); + break; + case 1: // Status Code 2 + if (aData[i++]) bFault |= (1 << 2); // Bit 0 : Over voltage warning + else bFault &= ~(1 << 2); + if (aData[i++]) bFault |= (1 << 4); // Bit 1 : Cell Over voltage warning + else bFault &= ~(1 << 4); + if (aData[i++]) bFault |= (1 << 3); // Bit 2 : Low voltage warning + else bFault &= ~(1 << 3); + if (aData[i++]) bFault |= (1 << 5); // Bit 3 : Low cell voltage warning + else bFault &= ~(1 << 5); + if (aData[i++]) bFault |= (1 << 6); // Bit 4 : Charge over current warning + else bFault &= ~(1 << 6); + if (aData[i++]) bFault |= (1 << 7); // Bit 5 : Discharge over current warning + else bFault &= ~(1 << 7); + i++; // 06 Abnormal balancing current + i++; // 07 Reserved + if ((aData[8]) || (aData[9])) bFault |= (1 << 0); // Bit 8 : Charge over temperature warning, Bit 9 : Discharge over temperature warning + else bFault &= ~(1 << 0); + i++; // 08 + i++; // 09 + if ((aData[10]) || (aData[11])) bFault |= (1 << 1); // Bit 10 : Charge low temperature warning, Bit 11 : Discharge low temperature warning + else bFault &= ~(1 << 1); + i++; // 10 + i++; // 11 + i++; // 12 + i++; // 13 + if (aData[i++]) bFault |= (1 << 9); // 14 Cell Voltage Difference Warning + else bFault &= ~(1 << 9); + break; + } + + rSystemData.StatusData.protection = bFault; + rSystemData.StatusData.warning = bWarning; + + return rSystemData; + } + + public static void SetSnmpData(int index, object sdata, ref DeviceSystemData aSystemData) + { + switch (index) + { + case 1: aSystemData.ValueData.voltageOfPack = (short)(Convert.ToDouble(sdata) / 10); break; // voltageOfPack - 0.01V + case 2: aSystemData.ValueData.current = (short)(Convert.ToDouble(sdata) - 10000); break; // current - 0.1A, Offset: 10000 + case 3: // Cell Voltage #1 + case 4: // Cell Voltage #2 + case 5: // Cell Voltage #3 + case 6: // Cell Voltage #4 + case 7: // Cell Voltage #5 + case 8: // Cell Voltage #6 + case 9: // Cell Voltage #7 + case 10: // Cell Voltage #8 + case 11: // Cell Voltage #9 + case 12: // Cell Voltage #10 + case 13: // Cell Voltage #11 + case 14: // Cell Voltage #12 + case 15: // Cell Voltage #13 + case 16: // Cell Voltage #14 + case 17: // Cell Voltage #15 + case 18: // Cell Voltage #16 + case 19: // Cell Voltage #17 + case 20: // Cell Voltage #18 + case 21: // Cell Voltage #19 + case 22: // Cell Voltage #20 + case 23: // Cell Voltage #21 + case 24: // Cell Voltage #22 + case 25: // Cell Voltage #23 + case 26: // Cell Voltage #24 + case 27: // Cell Voltage #25 + case 28: // Cell Voltage #26 + case 29: // Cell Voltage #27 + case 30: // Cell Voltage #28 + case 31: // Cell Voltage #29 + case 32: // Cell Voltage #30 + case 33: // Cell Voltage #31 + case 34: // Cell Voltage #32 + case 35: // Cell Voltage #33 + case 36: // Cell Voltage #34 + case 37: // Cell Voltage #35 + case 38: // Cell Voltage #36 + case 39: // Cell Voltage #37 + case 40: // Cell Voltage #38 + case 41: // Cell Voltage #39 + aSystemData.ValueData.CellVoltage[index - 3] = (ushort)(Convert.ToDouble(sdata) / 1); + csUtils.MakeMaxAvgMinCellVoltage(ref aSystemData, 39); + break; // Cell Voltage #16 + + case 43: aSystemData.ValueData.Ext1Temperature = (short)(Convert.ToDouble(sdata) * 10); break; // Temp of PCB - C + case 44: aSystemData.ValueData.Ext2Temperature = (short)(Convert.ToDouble(sdata) * 10); break; // Temp of Ambient - C + case 45: aSystemData.AvgData.maxTemp = (short)(Convert.ToDouble(sdata) * 10); break; // Max. Temp + + case 46: aSystemData.ValueData.remainingCapacity = (short)(Convert.ToDouble(sdata) * 1); break; // Remaining Capacity + + case 47: aSystemData.ValueData.stateOfHealth = (short)(Convert.ToDouble(sdata) / 10); break; // stateOfHealth + case 48: aSystemData.ValueData.rSOC = (short)(Convert.ToDouble(sdata) / 10); break; // Relatvie State Of Charge + + case 49: aSystemData.StatusData.status = (short)(Convert.ToDouble(sdata) / 1); break; // Status + case 50: aSystemData.StatusData.warning = MakeSnmpWarningData((short)Convert.ToDouble(sdata)); break; // warning + case 51: aSystemData.StatusData.protection = MakeSnmpTripData((short)Convert.ToDouble(sdata)); break; // Protection + case 52: // FaultAndStatus + aSystemData.StatusData.faultAndStatus = (short)(Convert.ToDouble(sdata) / 1); + //aSystemData.StatusData.status = (short)(((short)Convert.ToDouble(sdata) >> 8) & 0x0003); + MakeAlarm(ref aSystemData); + break; + case 53: aSystemData.ValueData.cycleCount = (short)(Convert.ToDouble(sdata) / 1); break; // cycleCount + + case 54: // Temperature #1 + case 55: // Temperature #2 + case 56: // Temperature #3 + case 57: // Temperature #4 + case 58: // Temperature #5 + case 59: // Temperature #6 + case 60: // Temperature #7 + case 61: // Temperature #8 + aSystemData.ValueData.CellTemperature[index - 54] = (short)(Convert.ToDouble(sdata) * 10); + csUtils.MakeMaxAvgMinTemperature(ref aSystemData, 8); + break; // Temperature #12 + + case 68: aSystemData.cellQty = (short)(Convert.ToDouble(sdata) * 1); break; // Cell Number + case 69: aSystemData.ValueData.designedCapacity = (short)(Convert.ToDouble(sdata) * 1); break; // Cell Number + case 70: break; // Average Temperature + case 71: aSystemData.ValueData.MaxBattChargeCurr = (short)(Convert.ToDouble(sdata) * 1); break; // Max. Charge Current - A + case 72: aSystemData.ntcQty = (short)(Convert.ToDouble(sdata) * 1); break; // NTC Number + + case 74: aSystemData.BmsDateTime.year = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Year + case 75: aSystemData.BmsDateTime.month = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Month + case 76: aSystemData.BmsDateTime.day = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Day + case 77: aSystemData.BmsDateTime.hour = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Hour + case 78: aSystemData.BmsDateTime.minute = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Minute + case 79: + aSystemData.BmsDateTime.second = (short)(Convert.ToDouble(sdata) * 1); // BMS DateTime - Second + aSystemData.BmsDateTime.DateTimeStr = string.Format("{0:0000}-{1:00}-{2:00} {3:00}:{4:00}:{5:00}" + , aSystemData.BmsDateTime.year + , aSystemData.BmsDateTime.month + , aSystemData.BmsDateTime.day + , aSystemData.BmsDateTime.hour + , aSystemData.BmsDateTime.minute + , aSystemData.BmsDateTime.second + ); + break; + + case 81: aSystemData.FloatVoltage = (int)Convert.ToDouble(sdata); break; // Float Voltage - 0.01V + case 82: aSystemData.BoostVoltage = (int)Convert.ToDouble(sdata); break; // Boost Voltage - 0.01V + + case 83: aSystemData.MinChargeTemp = (int)Convert.ToDouble(sdata); break; // Min. Charge Temp - C + case 84: aSystemData.MaxChargeTemp = (int)Convert.ToDouble(sdata); break; // Max. Charge Temp - C + + case 90: aSystemData.Information.ModelName = (string)sdata; break; // Model - string + case 91: aSystemData.Information.SwProductRev = (string)sdata; break; // BMS Fw Version - string + case 92: aSystemData.Information.HwSerialNumber = (string)sdata; break; // Pack Serial Number - string + case 93: aSystemData.Information.VendorName = (string)sdata; break; // Vendor Name - string + case 94: aSystemData.Information.ProductCode = (string)sdata; break; // Product Code - string + case 95: aSystemData.Information.MajorMinorRev = (string)sdata; break; // Major Minor Revision - string + case 96: aSystemData.Information.HwProductRev = (string)sdata; break; // Hardware Product Revision - string + case 97: aSystemData.Information.ManufacturingDate = (string)sdata; break; // Manufacturing Date - string + + default: + break; + } + } + public static void MakeAlarm(ref DeviceSystemData rSystemData) + { + if (((rSystemData.StatusData.faultAndStatus >> 14) & 0x0001) == 0x0001) + { + rSystemData.StatusData.batteryStatus = 4; // Anti-theft Gyroscope + } + else if (((rSystemData.StatusData.faultAndStatus >> 15) & 0x0001) == 0x0001) + { + rSystemData.StatusData.batteryStatus = 5; // Anti-theft Comm. + } + else if (rSystemData.StatusData.protection != 0x0000) + { + rSystemData.StatusData.batteryStatus = 2; + } + else if (rSystemData.StatusData.warning != 0x0000) + { + rSystemData.StatusData.batteryStatus = 1; + } + else + { + rSystemData.StatusData.batteryStatus = 0; + } + } + public static short MakeSnmpTripData(short rdata) + { + short result = 0; + bool[] bAlarm = csUtils.Int16ToBitArray(rdata); + + if (bAlarm[0] == true) result |= (short)(1 << 4); // 0x0001:Cell OV + if (bAlarm[1] == true) result |= (short)(1 << 2); // 0x0002:Pack OV + if (bAlarm[2] == true) result |= (short)(1 << 5); // 0x0004:Cell UV + if (bAlarm[3] == true) result |= (short)(1 << 3); // 0x0008:Pack UV + + if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC1 + if (bAlarm[5] == true) result |= (short)(1 << 6); // 0x0020:Charging OC2 + if (bAlarm[6] == true) result |= (short)(1 << 7); // 0x0010:Discharging OC1 + if (bAlarm[7] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC2 + + if (bAlarm[8] == true) result |= (short)(1 << 9); // 0x0200:Short Circuit Protection + + if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer + if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0080: Charging Under Tempratuer + if (bAlarm[11] == true) result |= (short)(1 << 0); // 0x0040: Discharging Over Tempratuer + if (bAlarm[12] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer + + return result; + } + public static short MakeSnmpWarningData(short rdata) + { + short result = 0; + bool[] bAlarm = csUtils.Int16ToBitArray(rdata); + + if (bAlarm[0] == true) result |= (short)(1 << 4); // 0x0001:Cell OV + if (bAlarm[1] == true) result |= (short)(1 << 5); // 0x0002:Cell UV + if (bAlarm[2] == true) result |= (short)(1 << 2); // 0x0004:Pack OV + if (bAlarm[3] == true) result |= (short)(1 << 3); // 0x0008:Pack UV + + if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC + if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC + + if (bAlarm[6] == true) result |= (short)(1 << 8); // 0x0040:ENV OT + if (bAlarm[7] == true) result |= (short)(1 << 9); // 0x0080:ENV UT + + if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0100: Charging Over Temprature + if (bAlarm[9] == true) result |= (short)(1 << 1); // 0x0200: Charging Under Temprature + if (bAlarm[10] == true) result |= (short)(1 << 0); // 0x0400: Discharging Over Temprature + if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0800: Discharging Under Temprature + + if (bAlarm[12] == true) result |= (short)(1 << 11); // 0x1000:SOC Low + + if (bAlarm[13] == true) result |= (short)(1 << 13); // 0x2000:Diff Volt + if (bAlarm[14] == true) result |= (short)(1 << 14); // 0x4000:CB Off + + return result; + } + } +} diff --git a/LFP_Manager/Function/CsRs232CommFunction124050.cs b/LFP_Manager/Function/CsRs232CommFunction124050.cs new file mode 100644 index 0000000..7781eaf --- /dev/null +++ b/LFP_Manager/Function/CsRs232CommFunction124050.cs @@ -0,0 +1,562 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LFP_Manager.DataStructure; +using LFP_Manager.Utils; +using LFP_Manager.Controls; + +namespace LFP_Manager.Function +{ + /// + /// BMS 장치와의 시리얼 통신을 위한 개선된 클래스 + /// Modbus RTU 프로토콜 및 커스텀 프로토콜 지원 + /// + public class CsRs232CommFunction124050 + { + #region Constants - Modbus Function Codes + public const byte READ_COIL_STATUS = 0x01; + public const byte READ_HOLDING_REG = 0x03; + public const byte READ_INPUT_REG = 0x04; + public const byte FORCE_SINGLE_COIL = 0x05; + public const byte PRESET_SINGLE_REG = 0x06; + public const byte WRITE_COIL_REG = 0x0F; + public const byte PRESET_MULTI_REG = 0x10; + public const byte ERROR_REG = 0x90; + public const byte FW_FLASH_ERASE_CMD = 0x43; + public const byte FW_FLASH_WRITE_CMD = 0x31; + public const byte NO_CMD = 0xFF; + #endregion + + #region Constants - Register Addresses + private static class RegisterAddress + { + // Basic Data + public const int PACK_VOLTAGE = 0; + public const int PACK_CURRENT = 1; + public const int CELL_VOLTAGE_START = 2; + public const int CELL_VOLTAGE_END = 17; + public const int EXT1_TEMPERATURE = 18; + public const int EXT2_TEMPERATURE = 19; + public const int REMAINING_CAPACITY = 21; + public const int MAX_CHARGE_CURRENT = 22; + public const int STATE_OF_HEALTH = 23; + public const int STATE_OF_CHARGE = 24; + + // Status Registers + public const int OPERATING_STATUS = 25; + public const int WARNING_STATUS = 26; + public const int PROTECTION_STATUS = 27; + public const int ERROR_CODE = 28; + public const int CYCLE_COUNT_MSB = 29; + public const int CYCLE_COUNT_LSB = 30; + + // Temperature Registers (Packed) + public const int CELL_TEMP_START = 32; + public const int CELL_TEMP_END = 35; + + // Device Info + public const int CELL_QTY = 36; + public const int DESIGNED_CAPACITY = 37; + public const int CELL_BALANCE_STATUS = 38; + public const int DATETIME_MSB = 45; + public const int DATETIME_LSB = 46; + public const int SPECIAL_ALARM = 49; + + // Protection Parameters + public const int LOW_SOC_WARNING = 58; + public const int CELL_UV_WARNING = 61; + public const int CELL_UV_TRIP = 62; + public const int CELL_UV_RELEASE = 63; + public const int SYS_UV_WARNING = 64; + public const int SYS_UV_TRIP = 65; + public const int SYS_UV_RELEASE = 66; + public const int CELL_OV_WARNING = 67; + public const int CELL_OV_TRIP = 68; + public const int CELL_OV_RELEASE = 69; + public const int SYS_OV_WARNING = 70; + public const int SYS_OV_TRIP = 71; + public const int SYS_OV_RELEASE = 72; + + // Current Protection + public const int CHA_OC_TIMES = 76; + public const int DCH_OC_TIMES = 77; + public const int CHA_OC_RELEASE_TIME = 78; + public const int DCH_OC_RELEASE_TIME = 79; + public const int CHA_OC_TRIP1 = 80; + public const int DCH_OC_TRIP1 = 81; + public const int SHORT_CIRCUIT = 82; + public const int CHA_OC_TRIP2 = 83; + public const int DCH_OC_TRIP2 = 84; + public const int CHA_OC_DELAY1 = 85; + public const int CHA_OC_DELAY2 = 86; + public const int DCH_OC_DELAY1 = 87; + public const int DCH_OC_DELAY2 = 88; + + // Temperature Protection + public const int CHA_LOW_TEMP_WARNING = 90; + public const int CHA_LOW_TEMP_TRIP = 91; + public const int CHA_LOW_TEMP_RELEASE = 92; + public const int CHA_HIGH_TEMP_WARNING = 93; + public const int CHA_HIGH_TEMP_TRIP = 94; + public const int CHA_HIGH_TEMP_RELEASE = 95; + public const int DCH_LOW_TEMP_WARNING = 96; + public const int DCH_LOW_TEMP_TRIP = 97; + public const int DCH_LOW_TEMP_RELEASE = 98; + public const int DCH_HIGH_TEMP_WARNING = 99; + public const int DCH_HIGH_TEMP_TRIP = 100; + public const int DCH_HIGH_TEMP_RELEASE = 101; + + // Device Information + public const int MODEL_NAME_START = 105; + public const int MODEL_NAME_END = 116; + public const int FW_VERSION_START = 117; + public const int FW_VERSION_END = 119; + public const int SERIAL_NUMBER_START = 120; + public const int SERIAL_NUMBER_END = 127; + + // Extended Cell Voltages + public const int EXT_CELL_VOLTAGE_START = 138; + public const int EXT_CELL_VOLTAGE_END = 160; + + // Manufacturing Date + public const int MANU_DATE_START = 163; + public const int MANU_DATE_END = 166; + } + #endregion + + #region Delegates and Events + public delegate void LogEventHandler(string message, LogLevel level); + public static event LogEventHandler OnLog; + + public enum LogLevel + { + Info, + Warning, + Error + } + #endregion + + #region Modbus Frame Construction + /// + /// Modbus 읽기 요청 프레임 생성 + /// + public static byte[] CreateReadRegisterFrame(byte deviceId, byte functionCode, ushort startAddress, ushort quantity) + { + if (quantity == 0 || quantity > 125) + throw new ArgumentException("Invalid register quantity"); + + var frame = new byte[8]; + frame[0] = deviceId; + frame[1] = functionCode; + frame[2] = (byte)(startAddress >> 8); + frame[3] = (byte)(startAddress & 0xFF); + frame[4] = (byte)(quantity >> 8); + frame[5] = (byte)(quantity & 0xFF); + + var crc = csUtils.CalculateCRC(frame, 6); + frame[6] = crc[0]; + frame[7] = crc[1]; + + return frame; + } + + /// + /// Modbus 다중 레지스터 쓰기 요청 프레임 생성 + /// + public static byte[] CreateWriteMultipleRegistersFrame(byte deviceId, ushort startAddress, short[] values) + { + if (values == null || values.Length == 0 || values.Length > 123) + throw new ArgumentException("Invalid values array"); + + var frame = new byte[9 + (values.Length * 2)]; + int index = 0; + + frame[index++] = deviceId; + frame[index++] = PRESET_MULTI_REG; + frame[index++] = (byte)(startAddress >> 8); + frame[index++] = (byte)(startAddress & 0xFF); + frame[index++] = (byte)(values.Length >> 8); + frame[index++] = (byte)(values.Length & 0xFF); + frame[index++] = (byte)(values.Length * 2); + + foreach (var value in values) + { + frame[index++] = (byte)(value >> 8); + frame[index++] = (byte)(value & 0xFF); + } + + var crc = csUtils.CalculateCRC(frame, index); + frame[index++] = crc[0]; + frame[index++] = crc[1]; + + return frame; + } + + /// + /// 단일 코일 쓰기 요청 프레임 생성 + /// + public static byte[] CreateWriteCoilFrame(byte deviceId, ushort coilAddress, bool value) + { + var frame = new byte[8]; + frame[0] = deviceId; + frame[1] = FORCE_SINGLE_COIL; + frame[2] = (byte)(coilAddress >> 8); + frame[3] = (byte)(coilAddress & 0xFF); + frame[4] = value ? (byte)0xFF : (byte)0x00; + frame[5] = 0x00; + + var crc = csUtils.CalculateCRC(frame, 6); + frame[6] = crc[0]; + frame[7] = crc[1]; + + return frame; + } + #endregion + + #region Frame Validation + /// + /// Modbus 응답 프레임 검증 + /// + public static ValidationResult ValidateModbusResponse(byte[] data, int length) + { + if (data == null || length < 3) + return new ValidationResult(false, "Insufficient data length"); + + try + { + byte functionCode = data[1]; + int expectedLength = CalculateExpectedLength(functionCode, data, length); + + if (length < expectedLength) + return new ValidationResult(false, "Incomplete frame"); + + var calculatedCrc = csUtils.CalculateCRC(data, length - 2); + var receivedCrc = new byte[] { data[length - 2], data[length - 1] }; + + if (calculatedCrc[0] != receivedCrc[0] || calculatedCrc[1] != receivedCrc[1]) + return new ValidationResult(false, "CRC mismatch"); + + return new ValidationResult(true, "Valid frame"); + } + catch (Exception ex) + { + OnLog?.Invoke($"Frame validation error: {ex.Message}", LogLevel.Error); + return new ValidationResult(false, ex.Message); + } + } + + private static int CalculateExpectedLength(byte functionCode, byte[] data, int length) + { + switch (functionCode) + { + case READ_COIL_STATUS: + case READ_HOLDING_REG: + case READ_INPUT_REG: + return length >= 3 ? data[2] + 5 : 5; + case PRESET_MULTI_REG: + case FORCE_SINGLE_COIL: + case PRESET_SINGLE_REG: + return 8; + case ERROR_REG: + return 5; + case FW_FLASH_ERASE_CMD: + case FW_FLASH_WRITE_CMD: + return 5; + default: + return length; + } + } + #endregion + + #region Data Processing + /// + /// Modbus 응답 데이터를 시스템 데이터로 변환 + /// + public static ProcessingResult ProcessModbusResponse(byte[] data, ushort startAddress, ushort length, ref DeviceSystemData systemData) + { + if (data == null || systemData == null) + return new ProcessingResult(false, "Invalid input parameters"); + + try + { + byte functionCode = data[1]; + + switch (functionCode) + { + case READ_COIL_STATUS: + return ProcessCoilResponse(data, startAddress, length, ref systemData); + case READ_HOLDING_REG: + return ProcessHoldingRegisterResponse(data, startAddress, length, ref systemData); + case READ_INPUT_REG: + return ProcessInputRegisterResponse(data, startAddress, length, ref systemData); + case ERROR_REG: + return ProcessErrorResponse(data, ref systemData); + default: + return new ProcessingResult(false, $"Unsupported function code: {functionCode:X2}"); + } + } + catch (Exception ex) + { + OnLog?.Invoke($"Data processing error: {ex.Message}", LogLevel.Error); + return new ProcessingResult(false, ex.Message); + } + } + + private static ProcessingResult ProcessHoldingRegisterResponse(byte[] data, ushort startAddress, ushort length, ref DeviceSystemData systemData) + { + int byteCount = data[2]; + int registerCount = byteCount / 2; + int dataIndex = 3; + + var processors = GetRegisterProcessors(); + + for (int i = 0; i < registerCount; i++) + { + ushort registerAddress = (ushort)(startAddress + i); + short registerValue = (short)((data[dataIndex] << 8) | data[dataIndex + 1]); + + if (processors.TryGetValue(registerAddress, out var processor)) + { + processor.Invoke(registerValue, systemData); + } + + dataIndex += 2; + } + + // 계산된 값들 업데이트 + UpdateCalculatedValues(ref systemData); + + return new ProcessingResult(true, "Processing completed successfully"); + } + + private static ProcessingResult ProcessCoilResponse(byte[] data, ushort startAddress, ushort length, ref DeviceSystemData systemData) + { + // 코일 데이터 처리 로직 + return new ProcessingResult(true, "Coil processing completed"); + } + + private static ProcessingResult ProcessInputRegisterResponse(byte[] data, ushort startAddress, ushort length, ref DeviceSystemData systemData) + { + // 입력 레지스터 데이터 처리 로직 + return new ProcessingResult(true, "Input register processing completed"); + } + + private static ProcessingResult ProcessErrorResponse(byte[] data, ref DeviceSystemData systemData) + { + return new ProcessingResult(false, $"Device error: {data[2]:X2}"); + } + #endregion + + #region Register Processing + private static Dictionary> GetRegisterProcessors() + { + return new Dictionary> + { + [RegisterAddress.PACK_VOLTAGE] = (value, data) => data.ValueData.voltageOfPack = (short)(value / 10), + [RegisterAddress.PACK_CURRENT] = (value, data) => data.ValueData.current = (short)(value / 10), + [RegisterAddress.REMAINING_CAPACITY] = (value, data) => data.ValueData.remainingCapacity = value, + [RegisterAddress.STATE_OF_HEALTH] = (value, data) => data.ValueData.stateOfHealth = (short)(value * 10), + [RegisterAddress.STATE_OF_CHARGE] = (value, data) => data.ValueData.rSOC = (short)(value * 10), + [RegisterAddress.OPERATING_STATUS] = (value, data) => data.StatusData.status = value, + [RegisterAddress.WARNING_STATUS] = (value, data) => data.StatusData.warning = ConvertWarningData(value), + [RegisterAddress.PROTECTION_STATUS] = (value, data) => data.StatusData.protection = ConvertProtectionData(value), + [RegisterAddress.CELL_QTY] = (value, data) => data.recv_cellQty = value, + [RegisterAddress.DESIGNED_CAPACITY] = (value, data) => data.ValueData.designedCapacity = value, + // 추가 레지스터 처리기들... + }; + } + + private static void ProcessCellVoltages(ushort address, short value, ref DeviceSystemData systemData) + { + if (address >= RegisterAddress.CELL_VOLTAGE_START && address <= RegisterAddress.CELL_VOLTAGE_END) + { + int cellIndex = address - RegisterAddress.CELL_VOLTAGE_START; + if (cellIndex < systemData.ValueData.CellVoltage.Length) + { + systemData.ValueData.CellVoltage[cellIndex] = (ushort)value; + } + } + else if (address >= RegisterAddress.EXT_CELL_VOLTAGE_START && address <= RegisterAddress.EXT_CELL_VOLTAGE_END) + { + int cellIndex = address - RegisterAddress.EXT_CELL_VOLTAGE_START + 16; + if (cellIndex < systemData.ValueData.CellVoltage.Length) + { + systemData.ValueData.CellVoltage[cellIndex] = (ushort)value; + } + } + } + + private static void ProcessCellTemperatures(ushort address, short value, ref DeviceSystemData systemData) + { + if (address >= RegisterAddress.CELL_TEMP_START && address <= RegisterAddress.CELL_TEMP_END) + { + int tempIndex = (address - RegisterAddress.CELL_TEMP_START) * 2; + if (tempIndex + 1 < systemData.ValueData.CellTemperature.Length) + { + systemData.ValueData.CellTemperature[tempIndex] = (short)(((value >> 8) & 0xFF) * 10); + systemData.ValueData.CellTemperature[tempIndex + 1] = (short)((value & 0xFF) * 10); + } + } + } + #endregion + + #region Data Conversion + private static short ConvertWarningData(short rawData) + { + short result = 0; + bool[] alarmBits = ConvertToBitArray(rawData); + + if (alarmBits[0]) result |= (1 << 2); // Pack OV + if (alarmBits[1]) result |= (1 << 4); // Cell OV + if (alarmBits[2]) result |= (1 << 3); // Pack UV + if (alarmBits[3]) result |= (1 << 5); // Cell UV + if (alarmBits[4]) result |= (1 << 6); // Charging OC + if (alarmBits[5]) result |= (1 << 7); // Discharging OC + if (alarmBits[8]) result |= (1 << 0); // Charging Over Temperature + if (alarmBits[9]) result |= (1 << 0); // Discharging Over Temperature + if (alarmBits[10]) result |= (1 << 1); // Charging Under Temperature + if (alarmBits[11]) result |= (1 << 1); // Discharging Under Temperature + if (alarmBits[12]) result |= (1 << 11); // SOC Low + + return result; + } + + private static short ConvertProtectionData(short rawData) + { + short result = 0; + bool[] alarmBits = ConvertToBitArray(rawData); + + if (alarmBits[0]) result |= (1 << 2); // Pack OV + if (alarmBits[1]) result |= (1 << 4); // Cell OV + if (alarmBits[2]) result |= (1 << 3); // Pack UV + if (alarmBits[3]) result |= (1 << 5); // Cell UV + if (alarmBits[4]) result |= (1 << 6); // Charging OC + if (alarmBits[5]) result |= (1 << 7); // Discharging OC + if (alarmBits[8]) result |= (1 << 0); // Charging Over Temperature + if (alarmBits[9]) result |= (1 << 0); // Discharging Over Temperature + if (alarmBits[10]) result |= (1 << 1); // Charging Under Temperature + if (alarmBits[11]) result |= (1 << 1); // Discharging Under Temperature + if (alarmBits[13]) result |= (1 << 9); // Short Circuit Protection + + return result; + } + + private static bool[] ConvertToBitArray(short value) + { + var bits = new bool[16]; + for (int i = 0; i < 16; i++) + { + bits[i] = ((value >> i) & 1) == 1; + } + return bits; + } + #endregion + + #region Calculated Values + private static void UpdateCalculatedValues(ref DeviceSystemData systemData) + { + CalculateCellVoltageStatistics(ref systemData); + CalculateTemperatureStatistics(ref systemData); + csMakeDataFunction.MakeAlarm(ref systemData); + } + + private static void CalculateCellVoltageStatistics(ref DeviceSystemData systemData) + { + if (systemData.cellQty <= 0) return; + + int max = 0, min = int.MaxValue, sum = 0; + int maxIndex = 0, minIndex = 0; + + for (int i = 0; i < systemData.cellQty; i++) + { + if (i >= systemData.ValueData.CellVoltage.Length) break; + + int cellVoltage = systemData.ValueData.CellVoltage[i]; + sum += cellVoltage; + + if (cellVoltage > max) + { + max = cellVoltage; + maxIndex = i; + } + + if (cellVoltage < min) + { + min = cellVoltage; + minIndex = i; + } + } + + systemData.AvgData.avgCellVoltage = (short)(sum / systemData.cellQty); + systemData.AvgData.maxCellVoltage = (short)max; + systemData.AvgData.maxCellNum = (short)(maxIndex + 1); + systemData.AvgData.minCellVoltage = (short)min; + systemData.AvgData.minCellNum = (short)(minIndex + 1); + systemData.AvgData.diffCellVoltage = (short)(max - min); + } + + private static void CalculateTemperatureStatistics(ref DeviceSystemData systemData) + { + if (systemData.tempQty <= 0) return; + + int max = int.MinValue, min = int.MaxValue, sum = 0; + int maxIndex = 0, minIndex = 0; + + for (int i = 0; i < systemData.tempQty; i++) + { + if (i >= systemData.ValueData.CellTemperature.Length) break; + + int temperature = systemData.ValueData.CellTemperature[i]; + sum += temperature; + + if (temperature > max) + { + max = temperature; + maxIndex = i; + } + + if (temperature < min) + { + min = temperature; + minIndex = i; + } + } + + systemData.AvgData.avgTemp = (short)(sum / systemData.tempQty); + systemData.AvgData.maxTemp = (short)max; + systemData.AvgData.maxTempNum = (short)(maxIndex + 1); + systemData.AvgData.minTemp = (short)min; + systemData.AvgData.minTempNum = (short)(minIndex + 1); + systemData.AvgData.diffTemp = (short)(max - min); + } + #endregion + + #region Result Classes + public class ValidationResult + { + public bool IsValid { get; } + public string Message { get; } + + public ValidationResult(bool isValid, string message) + { + IsValid = isValid; + Message = message; + } + } + + public class ProcessingResult + { + public bool Success { get; } + public string Message { get; } + + public ProcessingResult(bool success, string message) + { + Success = success; + Message = message; + } + } + #endregion + } +} \ No newline at end of file diff --git a/LFP_Manager/Function/CsRs485CommFunction124050.cs b/LFP_Manager/Function/CsRs485CommFunction124050.cs new file mode 100644 index 0000000..b836c24 --- /dev/null +++ b/LFP_Manager/Function/CsRs485CommFunction124050.cs @@ -0,0 +1,996 @@ +using LFP_Manager.DataStructure; +using LFP_Manager.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LFP_Manager.Function +{ + internal class CsRs485CommFunction124050 + { + public const byte READ_COIL_STATUS = 0x01; + public const byte READ_HOLDING_REG = 0x03; + public const byte READ_INPUT_REG = 0x04; //Byul 구문 추가 필요 + public const byte FORCE_SINGLE_COIL = 0x05; + public const byte PRESET_SINGLE_REG = 0x06; + public const byte PRESET_MULTI_REG = 0x10; + public const byte WRITE_COIL_REG = 0x0F; + public const byte ERROR_REG = 0x90; + + public const byte READ_WRITE_REG = 0x17; + public const byte SPECIAL_REG_02 = 0x19; + public const byte READ_DEV_ID = 0x2B; + + public const byte FW_FLASH_ERASE_CMD = 0x43; + public const byte FW_FLASH_WRITE_CMD = 0x31; + + public const byte NO_CMD = 0xFF; + + public static byte[] GetCRC(byte[] pby, int nSize) + { + ushort uIndex, i; + ushort crc; + byte uchCRCHi = 0xff; + byte uchCRCLo = 0xff; + byte[] result = new byte[2]; + + for (i = 0; i < nSize; i++) + { + uIndex = (ushort)((int)uchCRCLo ^ (int)pby[i]); + uchCRCLo = (byte)(uchCRCHi ^ csConstData.CRC_Data.auchCRCHi[uIndex]); + uchCRCHi = csConstData.CRC_Data.auchCRCLo[uIndex]; + } + crc = (ushort)((uchCRCHi << 8) | uchCRCLo); + + result[0] = (byte)(crc >> 8); + result[1] = (byte)(crc >> 0); + + return result; + } + + static public byte[] MakeReadRegisterData(ushort DevID, ushort cmd, ushort ReadAddr, ushort Size) + { + byte[] result = new byte[8]; + byte[] crc; + + result[0] = (byte)DevID; // Device ID + result[1] = (byte)cmd; // Command + result[2] = (byte)(ReadAddr >> 8); // Register Address MSB + result[3] = (byte)(ReadAddr >> 0); // Register Address LSB + result[4] = (byte)(Size >> 8); // Count of Register MSB + result[5] = (byte)(Size >> 0); // Count of Register LSB + + crc = GetCRC(result, 6); + + result[6] = crc[1]; // CRCH + result[7] = crc[0]; // CRCL + + return result; + } + + static public byte[] MakeWriteCoilData(ushort DevID, ushort WriteAddr, short WriteData) + { + byte[] result = new byte[7 + (1 * 1) + 2]; + byte[] crc; + ushort i = 0; + + result[i++] = (byte)DevID; // Device ID + result[i++] = (byte)WRITE_COIL_REG; // Command + result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB + result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB + result[i++] = (byte)(1 >> 8); // Count of Register MSB + result[i++] = (byte)(1 >> 0); // Count of Register LSB + result[i++] = (byte)(1 * 1); // Byte Count - [2 * (Num of register)] + + result[i++] = (byte)(WriteData >> 0); + + crc = GetCRC(result, i); + + result[i++] = crc[1]; // CRCH + result[i++] = crc[0]; // CRCL + + return result; + } + + static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, short WriteData) + { + byte[] result = new byte[9 + (1 * 2)]; + byte[] crc; + ushort i = 0; + + result[i++] = (byte)DevID; // Device ID + result[i++] = (byte)PRESET_MULTI_REG; // Command + result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB + result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB + result[i++] = (byte)(1 >> 8); // Count of Register MSB + result[i++] = (byte)(1 >> 0); // Count of Register LSB + result[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)] + + result[i++] = (byte)(WriteData >> 8); + result[i++] = (byte)(WriteData >> 0); + + crc = GetCRC(result, i); + + result[i++] = crc[1]; // CRCH + result[i++] = crc[0]; // CRCL + + return result; + } + + static public byte[] MakeReadDevIdRegReqData(ushort DevID, ushort cmd, ushort ReadAddr) + { + byte[] result = new byte[7]; + byte[] crc; + + result[0] = (byte)DevID; // Device ID + result[1] = (byte)cmd; // Command + result[2] = (byte)0x0E; // MEI Type + result[3] = (byte)0x02; // Read Dev Id code + result[4] = (byte)ReadAddr; // Object Id + + crc = GetCRC(result, 5); + + result[5] = crc[1]; // CRCH + result[6] = crc[0]; // CRCL + + return result; + } + + static short GetRegister(ushort reg_addr, ref DeviceParamData aParam) + { + short result = 0; + + switch (reg_addr) + { + //case 19: result = (short)(0 >> 16); break; // 0021 : UTC TimeStamp MSB + //case 20: result = (short)(58 >> 0); break; // 0022 : UTC TimeStamp LSB + //case 21: result = (short)0x1000; break; // 0023 : Cell Balancing Flag + //case 22: result = (short)0x0000; break; // 0024 : Cell Balancing Voltage + //case 23: result = (short)15; break; // 0024 : Cell Balancing Time + + case 0x4002: result = (short)aParam.CellUnderVoltageWarning; break; // 0061 : Low cell voltage warning data + //case 33: result = (short)param.sf1.voltage.CUV_Threshold; break; // 0062 : Low cell voltage protection data + //case 34: result = (short)param.sf1.voltage.CUV_Recovery; break; // 0063 : Low cell voltage recovery data + //case 35: result = (short)param.sf1.voltage.SUV_Warning; break; // 0064 : Low voltage warning data + //case 36: result = (short)param.sf1.voltage.SUV_Threshold; break; // 0065 : Low voltage protection data + //case 37: result = (short)param.sf1.voltage.SUV_Recovery; break; // 0066 : Low voltage recovery data + //case 38: result = (short)param.sf1.voltage.COV_Warning; break; // 0067 : Over cell voltage warning data + //case 39: result = (short)param.sf1.voltage.COV_Threshold; break; // 0068 : Over cell voltage protection data + //case 40: result = (short)param.sf1.voltage.COV_Recovery; break; // 0069 : Over cell voltage recovery data + //case 41: result = (short)param.sf1.voltage.SOV_Warning; break; // 0070 : Over voltage warning data + //case 42: result = (short)param.sf1.voltage.SOV_Threshold; break; // 0071 : Over voltage protection data + //case 43: result = (short)param.sf1.voltage.SOV_Recovery; break; // 0072 : Over voltage recovery data + + //case 44: result = (short)param.sf1.temperature.OT_Chg_Warning; break; // 0044 : Charge over temperature warning data + //case 45: result = (short)param.sf1.temperature.OT_Chg_Threshold; break; // 0045 : Charge over temperature protection data + //case 46: result = (short)param.sf1.temperature.OT_Chg_Recovery; break; // 0046 : Charge over temperature recovery data + //case 47: result = (short)param.sf1.temperature.OT_Chg_Time; break; // 0047 : Charge over temperature time + + //case 48: result = (short)param.sf1.temperature.OT_Dsg_Warning; break; // 0048 : Discharge over temperature warning data + //case 49: result = (short)param.sf1.temperature.OT_Dsg_Threshold; break; // 0049 : Discharge over temperature protection data + //case 50: result = (short)param.sf1.temperature.OT_Dsg_Recovery; break; // 0050 : Discharge over temperature recovery data + //case 51: result = (short)param.sf1.temperature.OT_Dsg_Time; break; // 0051 : Discharge over temperature time + } + + return result; + } + + static byte[] ModBusGetRegWordToBytes(ushort addr, ref DeviceParamData aParam) + { + short data; + byte[] result = new byte[2]; + + data = GetRegister(addr, ref aParam); + + result[0] = (byte)(data >> 8); + result[1] = (byte)(data >> 0); + + return result; + } + + static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, ushort reg_len, ref DeviceParamData aParam) + { + int tlen = (reg_len * 2) + 7 + 2; + byte[] result = new byte[tlen]; + byte[] tmp; + byte[] crc; + + result[0] = (byte)DevID; // Device ID + result[1] = (byte)PRESET_MULTI_REG; // Command + result[2] = (byte)(WriteAddr >> 8); // Register Address MSB + result[3] = (byte)(WriteAddr >> 0); // Register Address LSB + result[4] = (byte)(reg_len >> 8); // Count of Register MSB + result[5] = (byte)(reg_len >> 0); // Count of Register LSB + result[6] = (byte)(reg_len * 2); ; // Current Value MSB + + for (int i = 0; i < reg_len; i++) + { + tmp = ModBusGetRegWordToBytes((ushort)(WriteAddr + i), ref aParam); + result[7 + (i * 2) + 0] = tmp[0]; + result[7 + (i * 2) + 1] = tmp[1]; + } + crc = GetCRC(result, 8); + + result[tlen - 2] = crc[0]; // CRCH + result[tlen - 1] = crc[1]; // CRCL + + return result; + } + + static public byte[] MakeReadWriteRegisterData(ushort DevID, ushort WriteAddr, short WriteData) + { + byte[] result = new byte[15]; + byte[] crc; + ushort i = 0; + + result[i++] = (byte)DevID; // Device ID + result[i++] = (byte)READ_WRITE_REG; // Command + result[i++] = (byte)(WriteAddr >> 8); // Read Register Address MSB + result[i++] = (byte)(WriteAddr >> 0); // Read Register Address LSB + result[i++] = (byte)(0 >> 8); // Read Count of Register MSB + result[i++] = (byte)(0 >> 0); // Read Count of Register LSB + result[i++] = (byte)(WriteAddr >> 8); // Write Register Address MSB + result[i++] = (byte)(WriteAddr >> 0); // Write Register Address LSB + result[i++] = (byte)(1 >> 8); // Write Count of Register MSB + result[i++] = (byte)(1 >> 0); // Write Count of Register LSB + result[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)] + + result[i++] = (byte)(WriteData >> 8); + result[i++] = (byte)(WriteData >> 0); + + crc = GetCRC(result, i); + + result[i++] = crc[0]; // CRCH + result[i++] = crc[1]; // CRCL + + return result; + } + + public static byte[] MakeCheckSum(byte[] sData, int offset, int len, bool flag) + { + byte[] result = new byte[2]; + int checksum = 0; + + for (int i = 0; i < len; i++) + { + checksum += sData[i + offset]; + } + + checksum = ~checksum + 1; + + result[0] = (byte)(checksum >> 8); + result[1] = (byte)checksum; + + return result; + } + + private static byte[] MakeTxPacket(byte[] sData, int len) + { + string str = ""; + byte[] result; + char[] chrArray; + int checksum = 0; + string checksumStr = ""; + char[] checksumChr; + + str = "~"; + + for (int i = 0; i < len; i++) + { + str += sData[i].ToString("X2"); + } + + str += "\r"; + + chrArray = str.ToCharArray(); + + for (int i = 0; i < (chrArray.Length - 6); i++) + { + checksum += chrArray[i + 1]; + } + + checksum = ~checksum + 1; + + checksumStr = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum); + checksumChr = checksumStr.ToCharArray(); + + for (int i = 0; i < 4; i++) + { + chrArray[chrArray.Length - 5 + i] = checksumChr[i]; + } + + result = new byte[chrArray.Length]; + + for (int i = 0; i < chrArray.Length; i++) + { + result[i] = (byte)chrArray[i]; + } + + return result; + } + + public static byte[] LengthLchk(int sLen) + { + byte[] result = new byte[2]; + int lchksum = 0; + + lchksum = (~(((sLen >> 8) & 0xF) + + ((sLen >> 4) & 0xF) + + ((sLen >> 0) & 0xF)) + 1) % 16; + lchksum = ((lchksum << 12) | sLen); + + result[0] = (byte)(lchksum >> 8); + result[1] = (byte)(lchksum >> 0); + + return result; + } + + public static byte[] MakeTxData(byte addr, byte cmd, int sLen) + { + int buffCh = 0; + byte[] sData; + byte[] lenId; + byte[] checksum; + + sData = new byte[((sLen > 0) ? 11 : 10)]; + + sData[buffCh] = 0x7E; buffCh++; // SOI + sData[buffCh] = 0x25; buffCh++; // VER + sData[buffCh] = addr; buffCh++; // ADDR + sData[buffCh] = 0x46; buffCh++; // CID1 + sData[buffCh] = cmd; buffCh++; // CID2 (CMD) + + lenId = LengthLchk(sLen); // LENID + sData[buffCh] = lenId[0]; buffCh++; // LENID MSB + sData[buffCh] = lenId[1]; buffCh++; // LENID LSB + + if (sLen > 0) + { + sData[buffCh] = (byte)(sLen / 2); buffCh++; // INFO + } + + checksum = csSerialCommFunction.MakeCheckSum(sData, 1, sData.Length - 4, false); + + sData[buffCh] = checksum[1]; buffCh++; + sData[buffCh] = checksum[0]; buffCh++; + + sData[buffCh] = 0x0D; buffCh++; // EOI + + return MakeTxPacket(sData, sData.Length); + } + + public static int TbPacketCheck(byte[] rdata, int rlen) + { + int result = 0; + byte[] cdata; + byte[] checksum; + byte[] checksum1; + + checksum = MakeCheckSum(rdata, 1, rlen - 6, false); + + checksum1 = new byte[2]; + checksum1[0] = csUtils.StrByte2toByte(rdata[rlen - 4], rdata[rlen - 5]); + checksum1[1] = csUtils.StrByte2toByte(rdata[rlen - 2], rdata[rlen - 3]); + + + if ((checksum[0] == checksum1[0]) && (checksum[1] == checksum1[1])) + { + cdata = csUtils.StrToByteArray(rdata, 0, rlen); + + result = 1; + } + + return result; + } + + static public int ModbusPacketFromSlaveCheck(byte[] rdata, ushort rlen) + { + int result = 0; + byte[] cdata, crc; + ushort clen, bytecount; + + if (rlen > 2) + { + cdata = rdata; + + switch (cdata[1]) + { + case READ_DEV_ID: + if (rlen < 10) break; + if (rdata[7] == 0) break; + + int tmp = 0; + int cPos = 7; + int alen = 0; + for (int i = 0; i < cdata[7]; i++) + { + alen = cdata[cPos + 2]; + cPos += alen + 2; + if (rlen < (cPos + 3)) + { + tmp = 1; + break; + } + } + if (tmp == 1) break; + + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[1] == cdata[rlen - 2]) && (crc[0] == cdata[rlen - 1])) result = 1; + else result = -1; + break; + case READ_COIL_STATUS: + case READ_HOLDING_REG: + case READ_INPUT_REG: + case READ_WRITE_REG: + bytecount = cdata[2]; + clen = (ushort)(bytecount + 5); // header 3, tail 2 + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[1] == cdata[rlen - 2]) && (crc[0] == cdata[rlen - 1])) result = 1; + else result = -1; + } + break; + case PRESET_MULTI_REG: + case FORCE_SINGLE_COIL: + case PRESET_SINGLE_REG: + clen = 8; + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1; + else result = -1; + } + break; + case ERROR_REG: + clen = 6; + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1; + else result = -1; + } + break; + case FW_FLASH_ERASE_CMD: + clen = 5; + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2; + else result = -1; + } + break; + case FW_FLASH_WRITE_CMD: + clen = 5; + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2; + else result = -1; + } + break; + default: + result = -1; + break; + } + } + return result; + } + + public static short[] SerialRxProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + short[] result = new short[2]; + + switch (rData[1]) + { + case READ_HOLDING_REG: // 0x03 + ReadHoldingRegisterProcess(rData, rRegAddr, rLen, ref rSystemData); + break; + case READ_INPUT_REG: // 0x04 + ReadInputRegisterProcess(rData, rRegAddr, rLen, ref rSystemData); + break; + case READ_WRITE_REG: // 0x17 + //ReadSP1RegisterProcess(rData, rRegAddr, rLen, ref rSystemData); + break; + case SPECIAL_REG_02: // 0x19 + //ReadInputRegisterProcess(rData, rRegAddr, rLen, ref rSystemData); + break; + case READ_DEV_ID: // 0x2B + ReadDevIdRegisterProcess(rData, rRegAddr, rLen, ref rSystemData); + break; + case PRESET_MULTI_REG: + // read_holding_reg_process(reverse16(rsp->start_addr, true), reverse16(rsp->qty_reg, true)); + //result[0] = 1; + //result[1] = 1; + break; + case ERROR_REG: + result[0] = 2; + result[1] = (short)((rData[0] << 8) | rData[1]); + break; + } + return result; + } + + private static void ReadCoilRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + int i, j; + short reg_count; + short reg_value; + i = 2; + reg_count = rData[i]; + + i++; + for (j = 0; j < reg_count; j++) + { + reg_value = (short)(rData[i + j]); + SetCoilRegister((short)(rRegAddr + j), reg_value, ref rSystemData); + i++; + } + } + + private static void ReadHoldingRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + int i, j; + short reg_count; + short reg_value; + i = 2; + reg_count = (short)(rData[i] / 2); i += 1; + + for (j = 0; j < reg_count; j++) + { + reg_value = (short)(rData[i] << 8 | rData[i + 1]); + SetHoldingRegister((short)(rRegAddr + j), reg_value, ref rSystemData); + i += 2; + } + } + private static void ReadInputRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + int i, j; + short reg_count; + short reg_value; + i = 2; + reg_count = (short)(rData[i] / 2); i += 1; + + for (j = 0; j < reg_count; j++) + { + reg_value = (short)(rData[i] << 8 | rData[i + 1]); + SetInputRegister((short)(rRegAddr + j), reg_value, ref rSystemData); + i += 2; + } + } + private static void ReadDevIdRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + int cPos = 7; + int alen = 0; + int regCount = rData[7]; + int oID = 0; + + for (int i = 0; i < regCount; i++) + { + oID = rData[cPos + 1]; + alen = rData[cPos + 2]; + byte[] tmp = new byte[alen]; + for (int j = 0; j < alen; j++) { tmp[j] = rData[cPos + 3 + j]; } + + switch (oID) + { + case 0x00: rSystemData.Information.VendorName = Encoding.ASCII.GetString(tmp).Trim('\0'); break; + case 0x01: rSystemData.Information.ProductCode = Encoding.ASCII.GetString(tmp).Trim('\0'); break; + case 0x02: rSystemData.Information.MajorMinorRev = Encoding.ASCII.GetString(tmp).Trim('\0'); break; + case 0x05: rSystemData.Information.ModelName = Encoding.ASCII.GetString(tmp).Trim('\0'); break; + case 0x82: rSystemData.Information.HwSerialNumber = Encoding.ASCII.GetString(tmp).Trim('\0'); break; + case 0x83: rSystemData.Information.HwProductRev = Encoding.ASCII.GetString(tmp).Trim('\0'); break; + case 0x84: rSystemData.Information.ManufacturingDate = Encoding.ASCII.GetString(tmp).Trim('\0'); break; + case 0x86: rSystemData.Information.SwProductRev = Encoding.ASCII.GetString(tmp).Trim('\0'); break; + } + + cPos += alen + 2; + if (rLen < (cPos + 3)) + { + break; + } + } + } + private static void ReadSP2RegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + int i, j; + short reg_count; + short reg_value; + i = 2; + reg_count = (short)(rData[i] / 2); i += 1; + + for (j = 0; j < reg_count; j++) + { + reg_value = (short)(rData[i] << 8 | rData[i + 1]); + SetSP2Register((short)(rRegAddr + j), reg_value, ref rSystemData); + i += 2; + } + } + private static void ReadSP1RegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + int i, j; + short reg_count; + short reg_value; + i = 2; + reg_count = (short)(rData[i] / 2); i += 1; + + for (j = 0; j < reg_count; j++) + { + reg_value = (short)(rData[i] << 8 | rData[i + 1]); + SetSP1Register((short)(rRegAddr + j), reg_value, ref rSystemData); + i += 2; + } + } + + private static readonly int CURRENT_OFFSET = 10000; + private static readonly int TEMP_OFFSET = 400; + + private static short MakeWarningData_AMG(short reg_value) + { + byte[] reg_byte = new byte[2]; + ushort result = 0; + + reg_byte[1] = (byte)(reg_value >> 8); + reg_byte[0] = (byte)(reg_value >> 0); + + if (((reg_byte[0] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 4); // Cell Over Voltage + if (((reg_byte[0] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 5); // Cell Under Voltage + if (((reg_byte[0] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 2); // Pack Over Voltage + if (((reg_byte[0] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 3); // Pack Under Voltage + if (((reg_byte[0] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 6); // Charge Over Current + if (((reg_byte[0] >> 5) & 0x01) == 0x01) result |= (ushort)(1 << 7); // Discharge Over Current + if (((reg_byte[0] >> 6) & 0x01) == 0x01) result |= (ushort)(1 << 14); // ENV Over Temperature + if (((reg_byte[0] >> 7) & 0x01) == 0x01) result |= (ushort)(1 << 15); // ENV Under Temperature + + if (((reg_byte[1] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Chg Over Temperature + if (((reg_byte[1] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Chg Under Temperature + if (((reg_byte[1] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Dch Over Temperature + if (((reg_byte[1] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Dch Under Temperature + if (((reg_byte[1] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 11); // SOC Low Alarm + if (((reg_byte[1] >> 5) & 0x01) == 0x01) result |= (ushort)(1 << 9); // Diff Voltage Alarm + if (((reg_byte[1] >> 6) & 0x01) == 0x01) result |= (ushort)(1 << 13); // CB On/OFF (1: OFF, 0: ON) + if (((reg_byte[1] >> 7) & 0x01) == 0x01) result |= (ushort)(1 << 12); // reserved + + return (short)result; + } + + private static short MakeProtectData_AMG(short reg_value) + { + byte[] reg_byte = new byte[2]; + ushort result = 0; + + reg_byte[1] = (byte)(reg_value >> 8); + reg_byte[0] = (byte)(reg_value >> 0); + + if (((reg_byte[0] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 4); // Cell Over Voltage + if (((reg_byte[0] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 2); // Pack Over Voltage + if (((reg_byte[0] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 5); // Cell Under Voltage + if (((reg_byte[0] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 3); // Pack Under Voltage + if (((reg_byte[0] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 6); // Cha Over Current 1 + if (((reg_byte[0] >> 5) & 0x01) == 0x01) result |= (ushort)(1 << 6); // Cha Over Current 2 + if (((reg_byte[0] >> 6) & 0x01) == 0x01) result |= (ushort)(1 << 7); // Dch Over Current 1 + if (((reg_byte[0] >> 7) & 0x01) == 0x01) result |= (ushort)(1 << 7); // Dch Over Current 2 + + if (((reg_byte[1] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 8); // SC Protect / CB off + if (((reg_byte[1] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Chg Over Temperature + if (((reg_byte[1] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Chg Under Temperature + if (((reg_byte[1] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Dch Over Temperature + if (((reg_byte[1] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Dch Under Temperature + + return (short)result; + } + + private static void MakeAlarm(ref DeviceSystemData rSystemData) + { + if (((rSystemData.StatusData.faultstatus >> 14) & 0x0001) == 0x0001) + { + rSystemData.StatusData.batteryStatus = 4; // Anti-theft Gyroscope + } + else if (((rSystemData.StatusData.faultstatus >> 15) & 0x0001) == 0x0001) + { + rSystemData.StatusData.batteryStatus = 5; // Anti-theft Comm. + } + else if (rSystemData.StatusData.protection != 0x0000) + { + rSystemData.StatusData.batteryStatus = 2; + } + else if (rSystemData.StatusData.warning != 0x0000) + { + rSystemData.StatusData.batteryStatus = 1; + } + else + { + rSystemData.StatusData.batteryStatus = 0; + } + } + + private static void SetHoldingRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData) + { + switch (reg_addr) + { + //100 ~111 : Model_Product Name + case 100: + case 101: + case 102: + case 103: + case 104: + case 105: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + int mReg = reg_addr - 100; + rSystemData.Information.Model_Byte[(mReg * 2) + 0] = (byte)(reg_value >> 8); + rSystemData.Information.Model_Byte[(mReg * 2) + 1] = (byte)(reg_value >> 0); + if (reg_addr == 111) + { + rSystemData.Information.ModelName = Encoding.Default.GetString(rSystemData.Information.Model_Byte).Trim('\0'); + } + break; + //112 ~114 : FW Version + case 112: + case 113: + case 114: + int fReg = reg_addr - 112; + rSystemData.Information.FwVer_Byte[(fReg * 2) + 0] = (byte)(reg_value >> 8); + rSystemData.Information.FwVer_Byte[(fReg * 2) + 1] = (byte)(reg_value >> 0); + if (reg_addr == 114) + { + rSystemData.Information.SwProductRev = Encoding.Default.GetString(rSystemData.Information.FwVer_Byte).Trim('\0'); + } + break; + //115 ~ 122 : BMS Serial number + case 115: + case 116: + case 117: + case 118: + case 119: + case 120: + case 121: + case 122: + int snReg = reg_addr - 115; + rSystemData.Information.BMS_SN[(snReg * 2) + 0] = (byte)(reg_value >> 8); + rSystemData.Information.BMS_SN[(snReg * 2) + 1] = (byte)(reg_value >> 0); + if (reg_addr == 122) + { + rSystemData.Information.HwSerialNumber = Encoding.Default.GetString(rSystemData.Information.BMS_SN).Trim('\0'); + } + break; + //123 ~ 127 : Manufacturer + case 123: + case 124: + case 125: + case 126: + case 127: + int mnReg = reg_addr - 123; + rSystemData.Information.Vendor_Byte[(mnReg * 2) + 0] = (byte)(reg_value >> 8); + rSystemData.Information.Vendor_Byte[(mnReg * 2) + 1] = (byte)(reg_value >> 0); + if (reg_addr == 127) + { + rSystemData.Information.VendorName = Encoding.Default.GetString(rSystemData.Information.Vendor_Byte).Trim('\0'); + } + break; + default: + break; + } + } + private static void SetInputRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData) + { + switch (reg_addr) + { + case 0x0FFF: + rSystemData.ValueData.voltageOfPack = (short)(reg_value / 10); + rSystemData.active = true; + break; // 48.00V = 4800 + case 0x1000: rSystemData.ValueData.current = (short)(reg_value - CURRENT_OFFSET); break; // 100.0A = 1000 -10000 = 0; + case 0x1001: rSystemData.ValueData.remainingCapacity = (short)(reg_value / 1); break; // 100.0Ah = 1000 + case 0x1002: rSystemData.ValueData.Ext1Temperature = (short)(reg_value - TEMP_OFFSET); break; // 10.0C = 100 + case 0x1003: rSystemData.ValueData.Ext2Temperature = (short)(reg_value - TEMP_OFFSET); break; // 10.0C = 100 + + case 0x1004: rSystemData.StatusData.warning = MakeWarningData_AMG(reg_value); break; // Warning Status + case 0x1005: rSystemData.StatusData.protection = MakeProtectData_AMG(reg_value); break; // Protection Status + case 0x1006: // Fault Status + rSystemData.StatusData.faultstatus = (short)(reg_value / 1); + rSystemData.StatusData.status = (short)((reg_value >> 8) & 0x0003); + MakeAlarm(ref rSystemData); + break; + + case 0x1007: rSystemData.ValueData.rSOC = (short)(reg_value / 10); break; // 100.00% = 10000 + case 0x1008: rSystemData.ValueData.stateOfHealth = (short)(reg_value / 10); break; // 100.00% = 10000 + + case 0x1009: rSystemData.ValueData.fullChargeCapacity = (short)(reg_value / 1); break; // 100.0Ah = 1000 + case 0x100A: rSystemData.ValueData.cycleCount = (short)(reg_value / 1); break; // 100 cycles = 100 + case 0x100B: rSystemData.ValueData.NumOfCells = (short)(reg_value / 1); break; // 15 cells = 15 + case 0x100C: // Cell Voltage #1 + case 0x100D: // Cell Voltage #2 + case 0x100E: // Cell Voltage #3 + case 0x100F: // Cell Voltage #4 + case 0x1010: // Cell Voltage #5 + case 0x1011: // Cell Voltage #6 + case 0x1012: // Cell Voltage #7 + case 0x1013: // Cell Voltage #8 + case 0x1014: // Cell Voltage #9 + case 0x1015: // Cell Voltage #10 + case 0x1016: // Cell Voltage #11 + case 0x1017: // Cell Voltage #12 + case 0x1018: // Cell Voltage #13 + case 0x1019: // Cell Voltage #14 + case 0x101A: // Cell Voltage #15 + case 0x101B: // Cell Voltage #16 + case 0x101C: // Cell Voltage #17 + case 0x101D: // Cell Voltage #18 + case 0x101E: // Cell Voltage #19 + case 0x101F: // Cell Voltage #20 + case 0x1020: // Cell Voltage #21 + case 0x1021: // Cell Voltage #22 + case 0x1022: // Cell Voltage #23 + case 0x1023: // Cell Voltage #24 + case 0x1024: // Cell Voltage #25 + case 0x1025: // Cell Voltage #26 + case 0x1026: // Cell Voltage #27 + case 0x1027: // Cell Voltage #28 + case 0x1028: // Cell Voltage #29 + case 0x1029: // Cell Voltage #30 + case 0x102A: // Cell Voltage #31 + case 0x102B: // Cell Voltage #32 + case 0x102C: // Cell Voltage #33 + case 0x102D: // Cell Voltage #34 + case 0x102E: // Cell Voltage #35 + case 0x102F: // Cell Voltage #36 + case 0x1030: // Cell Voltage #37 + case 0x1031: // Cell Voltage #38 + case 0x1032: // Cell Voltage #39 - 3.256V = 3256 + int cNo = reg_addr - 0x100C; + if (cNo < rSystemData.ValueData.CellVoltage.Length) + { + rSystemData.ValueData.CellVoltage[cNo] = (ushort)(reg_value / 1); + } + csUtils.MakeMaxAvgMinCellVoltage(ref rSystemData, 39); + break; + case 0x1033: rSystemData.ValueData.NumOfTemps = (short)(reg_value / 1); break; // 5 temps = 5 + case 0x1034: rSystemData.ValueData.CellTemperature[0] = (short)(reg_value - TEMP_OFFSET); break; + case 0x1035: rSystemData.ValueData.CellTemperature[1] = (short)(reg_value - TEMP_OFFSET); break; + case 0x1036: rSystemData.ValueData.CellTemperature[2] = (short)(reg_value - TEMP_OFFSET); break; + case 0x1037: rSystemData.ValueData.CellTemperature[3] = (short)(reg_value - TEMP_OFFSET); break; + case 0x1038: rSystemData.ValueData.CellTemperature[4] = (short)(reg_value - TEMP_OFFSET); break; + case 0x1039: rSystemData.ValueData.CellTemperature[5] = (short)(reg_value - TEMP_OFFSET); break; + case 0x103A: rSystemData.ValueData.CellTemperature[6] = (short)(reg_value - TEMP_OFFSET); break; + case 0x103B: // 25.3C = 253 - 400 = -147 (Offset -400) + rSystemData.ValueData.CellTemperature[7] = (short)(reg_value - TEMP_OFFSET); + csUtils.MakeMaxAvgMinTemperature(ref rSystemData, 8); + break; + case 0x103C: rSystemData.MaxValue.MaxChgCurrent = (short)(reg_value); break; // Max. Charge Current + case 0x103D: rSystemData.MaxValue.MaxChgTemperature = (short)(reg_value - TEMP_OFFSET); break; // Max. Charge Temperature + case 0x103E: rSystemData.MaxValue.MinChgTemperature = (short)(reg_value - TEMP_OFFSET); break; // Min. Charge Temperature + case 0x103F: rSystemData.MaxValue.FloatChgVolt = (short)(reg_value / 10); break; // Float Charge Current + case 0x1040: rSystemData.MaxValue.BoostChgVolt = (short)(reg_value / 10); break; // Boost Charge Current + + case 0x3000: rSystemData.CalibrationData.AntiTheftComm.TimeOut = (short)(reg_value / 1); break; + case 0x3002: rSystemData.CalibrationData.AntiTheftComm.FuncSwitch = (short)(reg_value / 1); break; + + case 0x4000: rSystemData.CalibrationData.AntiTheftGyro.XAxis = (short)(reg_value / 1); break; + case 0x4001: rSystemData.CalibrationData.AntiTheftGyro.YAxis = (short)(reg_value / 1); break; + case 0x4002: rSystemData.CalibrationData.AntiTheftGyro.ZAxis = (short)(reg_value / 1); break; + case 0x4003: rSystemData.CalibrationData.AntiTheftGyro.GyroPolicySel = (short)(reg_value / 1); break; + case 0x4004: rSystemData.CalibrationData.AntiTheftGyro.GyroFuncSwitch = (short)(reg_value / 1); break; + case 0x4006: rSystemData.CalibrationData.AntiTheftGyro.GyroState = (short)(reg_value / 1); break; + default: + break; + } + } + + private static void SetSP1Register(short reg_addr, short reg_value, ref DeviceSystemData rSystemData) + { + switch (reg_addr) + { + case 0x4000: rSystemData.GyroValue.X_axis = (short)(reg_value); break; // + case 0x4001: rSystemData.GyroValue.Y_axis = (short)(reg_value); break; // + case 0x4002: rSystemData.GyroValue.Z_axis = (short)(reg_value); break; // + case 0x4003: rSystemData.GyroValue.Gyro_policy_sel = (short)(reg_value); break; // + case 0x4004: rSystemData.GyroValue.Gyro_func_sw = (short)(reg_value); break; // + case 0x4006: rSystemData.GyroValue.Gyro_state = (short)(reg_value); break; // + default: + break; + } + } + private static void SetSP2Register(short reg_addr, short reg_value, ref DeviceSystemData rSystemData) + { + switch (reg_addr) + { + case 0x3000: rSystemData.GyroValue.X_axis = (short)(reg_value); break; // + case 0x3002: rSystemData.GyroValue.Y_axis = (short)(reg_value); break; // + default: + break; + } + } + private static void SetReadIdRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData) + { + switch (reg_addr) + { + case 0x4000: rSystemData.GyroValue.X_axis = (short)(reg_value); break; // + case 0x4001: rSystemData.GyroValue.Y_axis = (short)(reg_value); break; // + case 0x4002: rSystemData.GyroValue.Z_axis = (short)(reg_value); break; // + case 0x4003: rSystemData.GyroValue.Gyro_policy_sel = (short)(reg_value); break; // + case 0x4004: rSystemData.GyroValue.Gyro_func_sw = (short)(reg_value); break; // + case 0x4006: rSystemData.GyroValue.Gyro_state = (short)(reg_value); break; // + default: + break; + } + } + + private static void SetCoilRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData) + { + switch (reg_addr) + { + case 0x3078: + rSystemData.StatusData.relayStatus = reg_value; + rSystemData.CalibrationData.FetCalib.FetStatus = reg_value; + break; + case 0x502E: + rSystemData.CalibrationData.Current.ChargeOption = reg_value; + break; + } + } + + private static short MakeUartWarningData(short rdata) + { + short result = 0; + bool[] bAlarm = csUtils.Int16ToBitArray(rdata); + + if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV + if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV + if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV + if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV + + if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC + if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC + + if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer + if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Tempratuer + if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Tempratuer + if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer + if (bAlarm[12] == true) result |= (short)(1 << 11); // 0x0200:SOC Low + + return result; + } + + private static short MakeUartTripData(short rdata) + { + short result = 0; + bool[] bAlarm = csUtils.Int16ToBitArray(rdata); + + if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV + if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV + if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV + if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV + + if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC + if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC + + if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Temprature + if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Temprature + if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Temprature + if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Temprature + if (bAlarm[13] == true) result |= (short)(1 << 9); // 0x0200:Short Circuit Protection + + return result; + } + + private static short MakeUartErrorData(short rdata, short cdata) + { + short result = cdata; + bool[] bAlarm = csUtils.Int16ToBitArray(rdata); + + if (bAlarm[0] == true) result |= (short)(1 << 9); // 0x0001:Voltage error + if (bAlarm[1] == true) result |= (short)(1 << 9); // 0x0002:Temperature error + if (bAlarm[2] == true) result |= (short)(1 << 9); // 0x0004: 电流检测Error + if (bAlarm[3] == true) result |= (short)(1 << 9); // 0x0010:Cell unbalance + + return result; + } + } +} diff --git a/LFP_Manager/Function/CsSerialCommFunction124050.cs b/LFP_Manager/Function/CsSerialCommFunction124050.cs new file mode 100644 index 0000000..2baf758 --- /dev/null +++ b/LFP_Manager/Function/CsSerialCommFunction124050.cs @@ -0,0 +1,830 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using LFP_Manager.DataStructure; +using LFP_Manager.Utils; +using LFP_Manager.Controls; +using System.Web.Services.Description; +using System.Data.Entity.Core.Common.CommandTrees; +using DevExpress.XtraRichEdit.Fields.Expression; +using DevExpress.XtraRichEdit.Layout; +using DevExpress.XtraPrinting.Native.LayoutAdjustment; +using System.Windows.Forms; + +namespace LFP_Manager.Function +{ + class csSerialCommFunction124050 + { + public const byte READ_COIL_STATUS = 0x01; + public const byte READ_HOLDING_REG = 0x03; + public const byte READ_INPUT_REG = 0x04; //Byul 구문 추가 필요 + public const byte FORCE_SINGLE_COIL = 0x05; + public const byte PRESET_SINGLE_REG = 0x06; + public const byte PRESET_MULTI_REG = 0x10; + public const byte WRITE_COIL_REG = 0x0F; + public const byte ERROR_REG = 0x90; + + public const byte FW_FLASH_ERASE_CMD = 0x43; + public const byte FW_FLASH_WRITE_CMD = 0x31; + + public const byte NO_CMD = 0xFF; + + public static byte[] GetCRC(byte[] pby, int nSize) + { + ushort uIndex, i; + ushort crc; + byte uchCRCHi = 0xff; + byte uchCRCLo = 0xff; + byte[] result = new byte[2]; + + for (i = 0; i < nSize; i++) + { + uIndex = (ushort)((int)uchCRCLo ^ (int)pby[i]); + uchCRCLo = (byte)(uchCRCHi ^ csUtils.auchCRCHi[uIndex]); + uchCRCHi = csUtils.auchCRCLo[uIndex]; + } + crc = (ushort)((uchCRCHi << 8) | uchCRCLo); + + result[0] = (byte)(crc >> 8); + result[1] = (byte)(crc >> 0); + + return result; + } + + static public byte[] MakeReadRegisterData(ushort DevID, ushort cmd, ushort ReadAddr, ushort Size) + { + byte[] result = new byte[8]; + byte[] crc; + + result[0] = (byte)DevID; // Device ID + result[1] = (byte)cmd; // Command + result[2] = (byte)(ReadAddr >> 8); // Register Address MSB + result[3] = (byte)(ReadAddr >> 0); // Register Address LSB + result[4] = (byte)(Size >> 8); // Count of Register MSB + result[5] = (byte)(Size >> 0); // Count of Register LSB + + crc = GetCRC(result, 6); + + result[6] = crc[1]; // CRCH + result[7] = crc[0]; // CRCL + + return result; + } + + static public byte[] MakeWriteCoilData(ushort DevID, ushort WriteAddr, short WriteData) + { + byte[] result = new byte[7 + (1 * 1) + 2]; + byte[] crc; + ushort i = 0; + + result[i++] = (byte)DevID; // Device ID + result[i++] = (byte)WRITE_COIL_REG; // Command + result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB + result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB + result[i++] = (byte)(1 >> 8); // Count of Register MSB + result[i++] = (byte)(1 >> 0); // Count of Register LSB + result[i++] = (byte)(1 * 1); // Byte Count - [2 * (Num of register)] + + result[i++] = (byte)(WriteData >> 0); + + crc = GetCRC(result, i); + + result[i++] = crc[1]; // CRCH + result[i++] = crc[0]; // CRCL + + return result; + } + + static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, short[] WriteData) + { + byte[] result = new byte[9 + (WriteData.Length * 2)]; + byte[] crc; + ushort i = 0; + + result[i++] = (byte)DevID; // Device ID + result[i++] = (byte)PRESET_MULTI_REG; // Command + result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB + result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB + result[i++] = (byte)(WriteData.Length >> 8); // Count of Register MSB + result[i++] = (byte)(WriteData.Length >> 0); // Count of Register LSB + result[i++] = (byte)(WriteData.Length * 2); // Byte Count - [2 * (Num of register)] + + for (int j = 0; j < WriteData.Length; j++) + { + result[i++] = (byte)(WriteData[j] >> 8); + result[i++] = (byte)(WriteData[j] >> 0); + } + + crc = GetCRC(result, i); + + result[i++] = crc[1]; // CRCH + result[i++] = crc[0]; // CRCL + + return result; + } + + static short GetRegister(ushort reg_addr, ref DeviceParamData aParam) + { + short result = 0; + + switch (reg_addr) + { + //case 19: result = (short)(0 >> 16); break; // 0021 : UTC TimeStamp MSB + //case 20: result = (short)(58 >> 0); break; // 0022 : UTC TimeStamp LSB + //case 21: result = (short)0x1000; break; // 0023 : Cell Balancing Flag + //case 22: result = (short)0x0000; break; // 0024 : Cell Balancing Voltage + //case 23: result = (short)15; break; // 0024 : Cell Balancing Time + + case 0x4002: result = (short)aParam.CellUnderVoltageWarning; break; // 0061 : Low cell voltage warning data + //case 33: result = (short)param.sf1.voltage.CUV_Threshold; break; // 0062 : Low cell voltage protection data + //case 34: result = (short)param.sf1.voltage.CUV_Recovery; break; // 0063 : Low cell voltage recovery data + //case 35: result = (short)param.sf1.voltage.SUV_Warning; break; // 0064 : Low voltage warning data + //case 36: result = (short)param.sf1.voltage.SUV_Threshold; break; // 0065 : Low voltage protection data + //case 37: result = (short)param.sf1.voltage.SUV_Recovery; break; // 0066 : Low voltage recovery data + //case 38: result = (short)param.sf1.voltage.COV_Warning; break; // 0067 : Over cell voltage warning data + //case 39: result = (short)param.sf1.voltage.COV_Threshold; break; // 0068 : Over cell voltage protection data + //case 40: result = (short)param.sf1.voltage.COV_Recovery; break; // 0069 : Over cell voltage recovery data + //case 41: result = (short)param.sf1.voltage.SOV_Warning; break; // 0070 : Over voltage warning data + //case 42: result = (short)param.sf1.voltage.SOV_Threshold; break; // 0071 : Over voltage protection data + //case 43: result = (short)param.sf1.voltage.SOV_Recovery; break; // 0072 : Over voltage recovery data + + //case 44: result = (short)param.sf1.temperature.OT_Chg_Warning; break; // 0044 : Charge over temperature warning data + //case 45: result = (short)param.sf1.temperature.OT_Chg_Threshold; break; // 0045 : Charge over temperature protection data + //case 46: result = (short)param.sf1.temperature.OT_Chg_Recovery; break; // 0046 : Charge over temperature recovery data + //case 47: result = (short)param.sf1.temperature.OT_Chg_Time; break; // 0047 : Charge over temperature time + + //case 48: result = (short)param.sf1.temperature.OT_Dsg_Warning; break; // 0048 : Discharge over temperature warning data + //case 49: result = (short)param.sf1.temperature.OT_Dsg_Threshold; break; // 0049 : Discharge over temperature protection data + //case 50: result = (short)param.sf1.temperature.OT_Dsg_Recovery; break; // 0050 : Discharge over temperature recovery data + //case 51: result = (short)param.sf1.temperature.OT_Dsg_Time; break; // 0051 : Discharge over temperature time + } + + return result; + } + + static byte[] ModBusGetRegWordToBytes(ushort addr, ref DeviceParamData aParam) + { + short data; + byte[] result = new byte[2]; + + data = GetRegister(addr, ref aParam); + + result[0] = (byte)(data >> 8); + result[1] = (byte)(data >> 0); + + return result; + } + + static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, ushort reg_len, ref DeviceParamData aParam) + { + int tlen = (reg_len * 2) + 7 + 2; + byte[] result = new byte[tlen]; + byte[] tmp; + byte[] crc; + + result[0] = (byte)DevID; // Device ID + result[1] = (byte)PRESET_MULTI_REG; // Command + result[2] = (byte)(WriteAddr >> 8); // Register Address MSB + result[3] = (byte)(WriteAddr >> 0); // Register Address LSB + result[4] = (byte)(reg_len >> 8); // Count of Register MSB + result[5] = (byte)(reg_len >> 0); // Count of Register LSB + result[6] = (byte)(reg_len * 2); ; // Current Value MSB + + for (int i = 0; i < reg_len; i++) + { + tmp = ModBusGetRegWordToBytes((ushort)(WriteAddr + i), ref aParam); + result[7 + (i * 2) + 0] = tmp[0]; + result[7 + (i * 2) + 1] = tmp[1]; + } + crc = GetCRC(result, 8); + + result[tlen - 2] = crc[0]; // CRCH + result[tlen - 1] = crc[1]; // CRCL + + return result; + } + + public static byte[] MakeCheckSum(byte[] sData, int offset, int len, bool flag) + { + byte[] result = new byte[2]; + int checksum = 0; + + for (int i = 0; i < len; i++) + { + checksum += sData[i + offset]; + } + + checksum = ~checksum + 1; + + result[0] = (byte)(checksum >> 8); + result[1] = (byte)checksum; + + return result; + } + + private static byte[] MakeTxPacket(byte[] sData, int len) + { + string str = ""; + byte[] result; + char[] chrArray; + int checksum = 0; + string checksumStr = ""; + char[] checksumChr; + + str = "~"; + + for (int i = 0; i < len; i++) + { + str += sData[i].ToString("X2"); + } + + str += "\r"; + + chrArray = str.ToCharArray(); + + for (int i = 0; i < (chrArray.Length - 6); i++) + { + checksum += chrArray[i + 1]; + } + + checksum = ~checksum + 1; + + checksumStr = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum); + checksumChr = checksumStr.ToCharArray(); + + for (int i = 0; i < 4; i++) + { + chrArray[chrArray.Length - 5 + i] = checksumChr[i]; + } + + result = new byte[chrArray.Length]; + + for (int i = 0; i < chrArray.Length; i++) + { + result[i] = (byte)chrArray[i]; + } + + return result; + } + + public static byte[] LengthLchk(int sLen) + { + byte[] result = new byte[2]; + int lchksum = 0; + + lchksum = (~(((sLen >> 8) & 0xF) + + ((sLen >> 4) & 0xF) + + ((sLen >> 0) & 0xF)) + 1) % 16; + lchksum = ((lchksum << 12) | sLen); + + result[0] = (byte)(lchksum >> 8); + result[1] = (byte)(lchksum >> 0); + + return result; + } + + public static byte[] MakeTxData(byte addr, byte cmd, int sLen) + { + int buffCh = 0; + byte[] sData; + byte[] lenId; + byte[] checksum; + + sData = new byte[((sLen > 0) ? 11 : 10)]; + + sData[buffCh] = 0x7E; buffCh++; // SOI + sData[buffCh] = 0x25; buffCh++; // VER + sData[buffCh] = addr; buffCh++; // ADDR + sData[buffCh] = 0x46; buffCh++; // CID1 + sData[buffCh] = cmd; buffCh++; // CID2 (CMD) + + lenId = LengthLchk(sLen); // LENID + sData[buffCh] = lenId[0]; buffCh++; // LENID MSB + sData[buffCh] = lenId[1]; buffCh++; // LENID LSB + + if (sLen > 0) + { + sData[buffCh] = (byte)(sLen / 2); buffCh++; // INFO + } + + checksum = csSerialCommFunction.MakeCheckSum(sData, 1, sData.Length - 4, false); + + sData[buffCh] = checksum[1]; buffCh++; + sData[buffCh] = checksum[0]; buffCh++; + + sData[buffCh] = 0x0D; buffCh++; // EOI + + return MakeTxPacket(sData, sData.Length); + } + + public static int TbPacketCheck(byte[] rdata, int rlen) + { + int result = 0; + byte[] cdata; + byte[] checksum; + byte[] checksum1; + + checksum = MakeCheckSum(rdata, 1, rlen - 6, false); + + checksum1 = new byte[2]; + checksum1[0] = csUtils.StrByte2toByte(rdata[rlen - 4], rdata[rlen - 5]); + checksum1[1] = csUtils.StrByte2toByte(rdata[rlen - 2], rdata[rlen - 3]); + + + if ((checksum[0] == checksum1[0]) && (checksum[1] == checksum1[1])) + { + cdata = csUtils.StrToByteArray(rdata, 0, rlen); + + result = 1; + } + + return result; + } + + static public int ModbusPacketFromSlaveCheck(byte[] rdata, ushort rlen) + { + int result = 0; + byte[] cdata, crc; + ushort clen, bytecount; + + if (rlen > 2) + { + cdata = rdata; + + switch (cdata[1]) + { + case READ_COIL_STATUS: + case READ_HOLDING_REG: + case READ_INPUT_REG: + bytecount = cdata[2]; + clen = (ushort)(bytecount + 5); // header 3, tail 2 + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[1] == cdata[rlen - 2]) && (crc[0] == cdata[rlen - 1])) result = 1; + else result = -1; + } + break; + case PRESET_MULTI_REG: + case FORCE_SINGLE_COIL: + case PRESET_SINGLE_REG: + clen = 8; + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1; + else result = -1; + } + break; + case ERROR_REG: + clen = 6; + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1; + else result = -1; + } + break; + case FW_FLASH_ERASE_CMD: + clen = 5; + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2; + else result = -1; + } + break; + case FW_FLASH_WRITE_CMD: + clen = 5; + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2; + else result = -1; + } + break; + + default: + result = -1; + break; + } + } + return result; + } + + public static short[] SerialRxProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + short[] result = new short[2]; + + switch (rData[1]) + { + case READ_COIL_STATUS: + ReadCoilRegisterProcess(rData, rRegAddr, rLen, ref rSystemData); + break; + case READ_HOLDING_REG: + ReadHoldRegisterProcess(rData, rRegAddr, rLen, ref rSystemData); + break; + case READ_INPUT_REG: + //ReadInputRegisterProcess(rData, rRegAddr, rLen, ref rSystemData); + break; + //case READ_INPUT_REG: + // ReadRegister(rData, rRegAddr, rLen, ref rSystemData); + // break; + case PRESET_MULTI_REG: + // read_holding_reg_process(reverse16(rsp->start_addr, true), reverse16(rsp->qty_reg, true)); + //result[0] = 1; + //result[1] = 1; + break; + case ERROR_REG: + result[0] = 2; + result[1] = (short)((rData[0] << 8) | rData[1]); + break; + } + + return result; + } + + private static void ReadCoilRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + int i, j; + short reg_count; + short reg_value; + i = 2; + reg_count = rData[i]; + + i++; + for (j = 0; j < reg_count; j++) + { + reg_value = (short)(rData[i + j]); + SetCoilRegister((short)(rRegAddr + j), reg_value, ref rSystemData); + i++; + } + } + + private static void ReadHoldRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + int i, j; + short reg_count; + short reg_value; + i = 2; + reg_count = (short)(rData[i] / 2); i += 1; + + for (j = 0; j < reg_count; j++) + { + reg_value = (short)(rData[i] << 8 | rData[i + 1]); + SetHoldRegister((short)(rRegAddr + j), reg_value, ref rSystemData); + i += 2; + } + } + + private static void SetCoilRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData) + { + switch (reg_addr) + { + case 0x3078: + rSystemData.StatusData.relayStatus = reg_value; + rSystemData.CalibrationData.FetCalib.FetStatus = reg_value; + break; + case 0x502E: + rSystemData.CalibrationData.Current.ChargeOption = reg_value; + break; + } + } + + private static void SetHoldRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData) + { + int temp = 0; + try + { + switch (reg_addr) + { + case 0: rSystemData.ValueData.voltageOfPack = (short)(reg_value / 10); break; //Total Voltage + case 1: rSystemData.ValueData.current = (short)((reg_value) / 10); break; //Total Current + case 2: // Cell Voltage #1 + case 3: // Cell Voltage #2 + case 4: // Cell Voltage #3 + case 5: // Cell Voltage #4 + case 6: // Cell Voltage #5 + case 7: // Cell Voltage #6 + case 8: // Cell Voltage #7 + case 9: // Cell Voltage #8' + case 10: // Cell Voltage #9 + case 11: // Cell Voltage #10 + case 12: // Cell Voltage #11 + case 13: // Cell Voltage #12 + case 14: // Cell Voltage #13 + case 15: // Cell Voltage #14 + case 16: // Cell Voltage #15 + case 17: // Cell Voltage #16 + rSystemData.ValueData.CellVoltage[reg_addr - 2] = (ushort)(reg_value / 1); + csUtils.MakeMaxAvgMinCellVoltage(ref rSystemData, 39); + break; // 15 CellVoltage 1mV + case 18: rSystemData.ValueData.Ext1Temperature = (short)((reg_value) * 10); break; // Ext1 Temperature (Temp of MOS-FET) + case 19: rSystemData.ValueData.Ext2Temperature = (short)((reg_value) * 10); break; // Ext2 Amb. PCB Temperature 1C + case 20: break; // Temp Max. + case 21: rSystemData.ValueData.remainingCapacity = (short)(reg_value / 1); break; // Remaining Capacity + case 22: rSystemData.ValueData.MaxBattChargeCurr = reg_value / 1; break; + case 23: rSystemData.ValueData.stateOfHealth = (short)(reg_value * 10); break; + case 24: rSystemData.ValueData.rSOC = (short)(reg_value * 10); break; // SOC + case 25: rSystemData.StatusData.status = reg_value; break; // Operating Status + case 26: rSystemData.StatusData.warning = MakeUartWarningData(reg_value); break; // Warning Status + case 27: rSystemData.StatusData.protection = MakeUartTripData(reg_value); break; // Protection Status + case 28: rSystemData.StatusData.errorCode = reg_value; break; // Error Code + // 0x0001 : Voltage error + // 0x0002 : Temperature error + // 0x0004 : Current Check Error + // 0x0010 : Cell unbalance + // 0x4000 : Gyro alarm + // 0x8000 : Communication alarm + case 29: // Cycle count MSB + temp = rSystemData.ValueData.cycleCount; + rSystemData.ValueData.cycleCount = (temp & (0x0000FFFF)) | (reg_value << 16); + break; + case 30: // Cycle count LSB + temp = rSystemData.ValueData.cycleCount; + rSystemData.ValueData.cycleCount = (int)(temp & (0xFFFF0000)) | (reg_value << 0); + break; + //case 31: // fullChargeCapacity MSB + // temp = rSystemData.ValueData.fullChargeCapacity; + // rSystemData.ValueData.fullChargeCapacity = (temp & (0x0000FFFF)) | (reg_value << 16); + // break; + //case 32: // fullChargeCapacity LSB + // temp = rSystemData.ValueData.fullChargeCapacity; + // rSystemData.ValueData.fullChargeCapacity = (int)(temp & (0xFFFF0000)) | (reg_value << 0); + // break; + case 32: + case 33: + case 34: + case 35: + try + { + rSystemData.ValueData.CellTemperature[((reg_addr - 32) * 2) + 0] = (short)(((reg_value >> 8) & 0xFF) * 10); + rSystemData.ValueData.CellTemperature[((reg_addr - 32) * 2) + 1] = (short)(((reg_value >> 0) & 0xFF) * 10); + csUtils.MakeMaxAvgMinTemperature(ref rSystemData, 8); + } + catch (Exception ex) + { + MessageBox.Show(string.Format("{0} - ({1})({2})", ex, reg_addr, rSystemData.ValueData.CellTemperature.Length), "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + break; + case 36: rSystemData.recv_cellQty = reg_value; break; // Cell Qty + case 37: rSystemData.ValueData.designedCapacity = reg_value; break; + case 38: rSystemData.StatusData.cellBallanceStatus = reg_value; break; + + //case 42: + // rSystemData.ValueData.CellTemperature[6 + 0] = (short)(((reg_value >> 8) & 0xFF) * 10); + // rSystemData.ValueData.CellTemperature[6 + 1] = (short)(((reg_value >> 0) & 0xFF) * 10); + // MakeMaxAvgMinTemperature(ref rSystemData); + // break; + + //case 61: rSystemData.StatusData.cellBallanceStatus = reg_value; break; + //45 ~ 99 : Reserved + case 45: rSystemData.BmsDateTimeShort1 = (ushort)reg_value; break; // DateTime + case 46: + rSystemData.BmsDateTimeShort2 = (ushort)reg_value; + int yy, MM, dd, HH, mm, ss; + rSystemData.BmsDateTimeInt = (rSystemData.BmsDateTimeShort1 << 16) | (rSystemData.BmsDateTimeShort2); + yy = (rSystemData.BmsDateTimeInt >> 26) & 0x003F; + MM = ((rSystemData.BmsDateTimeInt >> 22) & 0x000F) % 13; + dd = ((rSystemData.BmsDateTimeInt >> 17) & 0x001F) % 32; + HH = ((rSystemData.BmsDateTimeInt >> 12) & 0x001F) % 24; + mm = ((rSystemData.BmsDateTimeInt >> 6) & 0x003F) % 60; + ss = ((rSystemData.BmsDateTimeInt >> 0) & 0x003F) % 60; + yy += 2000; + + rSystemData.BmsDateTime.DateTimeStr = string.Format("{0:0000}-{1:00}-{2:00} {3:00}:{4:00}:{5:00}" + , yy + , MM + , dd + , HH + , mm + , ss + ); + break; // DateTime + + case 47: rSystemData.CalibrationData.ChaMode.Mode = reg_value; break; // 0x2F + case 48: rSystemData.CalibrationData.ChaMode.Value = reg_value; break; // 0x2F + + case 49: rSystemData.StatusData.specialAlarm = (short)(reg_value); break; // Special Alarm + + case 56: rSystemData.CalibrationData.BalCalib.Volt = reg_value; break; // Cell Balance Voltage + case 57: rSystemData.CalibrationData.BalCalib.Diff = reg_value; break; // Cell Balance Diff + + case 58: rSystemData.ParamData.LowSocWarning = reg_value; break; + + case 61: rSystemData.ParamData.CellUnderVoltageWarning = reg_value; break; + case 62: rSystemData.ParamData.CellUnderVoltageTrip = reg_value; break; + case 63: rSystemData.ParamData.CellUnderVoltageRelease = reg_value; break; + case 64: rSystemData.ParamData.SysUnderVoltageWarning = (short)(reg_value / 10); break; + case 65: rSystemData.ParamData.SysUnderVoltageTrip = (short)(reg_value / 10); break; + case 66: rSystemData.ParamData.SysUnderVoltageRelease = (short)(reg_value / 10); break; + case 67: rSystemData.ParamData.CellOverVoltageWarning = reg_value; break; + case 68: rSystemData.ParamData.CellOverVoltageTrip = reg_value; break; + case 69: rSystemData.ParamData.CellOverVoltageRelease = reg_value; break; + case 70: rSystemData.ParamData.SysOverVoltageWarning = (short)(reg_value / 10); break; + case 71: rSystemData.ParamData.SysOverVoltageTrip = (short)(reg_value / 10); break; + case 72: rSystemData.ParamData.SysOverVoltageRelease = (short)(reg_value / 10); break; + + case 76: rSystemData.ParamData.ChaOverCurrentTimes = (short)(reg_value / 1); break; + case 77: rSystemData.ParamData.DchOverCurrentTimes = (short)(reg_value / 1); break; + case 78: rSystemData.ParamData.ChaOverCurrentReleaseTime = (short)(reg_value * 1); break; + case 79: rSystemData.ParamData.DchOverCurrentReleaseTime = (short)(reg_value * 1); break; + case 80: rSystemData.ParamData.ChaOverCurrentTrip1 = (short)(reg_value / 10); break; + case 81: rSystemData.ParamData.DchOverCurrentTrip1 = (short)(reg_value / 10); break; + case 82: rSystemData.ParamData.ShortCircuit = (short)(reg_value / 10); break; // Short Circuit Current = 300A + case 83: rSystemData.ParamData.ChaOverCurrentTrip2 = (short)(reg_value / 10); break; + case 84: rSystemData.ParamData.DchOverCurrentTrip2 = (short)(reg_value / 10); break; + case 85: rSystemData.ParamData.ChaOverCurrentDelay1 = (short)(reg_value / 1); break; + case 86: rSystemData.ParamData.ChaOverCurrentDelay2 = (short)(reg_value / 1); break; + case 87: rSystemData.ParamData.DchOverCurrentDelay1 = (short)(reg_value / 1); break; + case 88: rSystemData.ParamData.DchOverCurrentDelay2 = (short)(reg_value / 1); break; + + case 90: rSystemData.ParamData.ChaLowTempWarning = (short)(reg_value - 50); break; + case 91: rSystemData.ParamData.ChaLowTempTrip = (short)(reg_value - 50); break; + case 92: rSystemData.ParamData.ChaLowTempRelease = (short)(reg_value - 50); break; + case 93: rSystemData.ParamData.ChaHighTempWarning = (short)(reg_value - 50); break; + case 94: rSystemData.ParamData.ChaHighTempTrip = (short)(reg_value - 50); break; + case 95: rSystemData.ParamData.ChaHighTempRelease = (short)(reg_value - 50); break; + case 96: rSystemData.ParamData.DchLowTempWarning = (short)(reg_value - 50); break; + case 97: rSystemData.ParamData.DchLowTempTrip = (short)(reg_value - 50); break; + case 98: rSystemData.ParamData.DchLowTempRelease = (short)(reg_value - 50); break; + case 99: rSystemData.ParamData.DchHighTempWarning = (short)(reg_value - 50); break; + case 100: rSystemData.ParamData.DchHighTempTrip = (short)(reg_value - 50); break; + case 101: rSystemData.ParamData.DchHighTempRelease = (short)(reg_value - 50); break; + + case 102: break; // PCB High Temp Warning + case 103: break; // PCB High Temp Trip + case 104: break; // PCB High Temp Release + //100 ~111 : Model_Product Name + case 105: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + int mReg = reg_addr - 105; + rSystemData.Information.Model_Byte[(mReg * 2) + 0] = (byte)(reg_value >> 8); + rSystemData.Information.Model_Byte[(mReg * 2) + 1] = (byte)(reg_value >> 0); + if (reg_addr == 116) + { + rSystemData.Information.ModelName = Encoding.Default.GetString(rSystemData.Information.Model_Byte).Trim('\0'); + } + break; + + //112 ~114 : FW Version + case 117: + case 118: + case 119: + int fReg = reg_addr - 117; + rSystemData.Information.FwVer_Byte[(fReg * 2) + 0] = (byte)(reg_value >> 8); + rSystemData.Information.FwVer_Byte[(fReg * 2) + 1] = (byte)(reg_value >> 0); + if (reg_addr == 119) + { + rSystemData.Information.SwProductRev = Encoding.Default.GetString(rSystemData.Information.FwVer_Byte).Trim('\0'); + } + break; + //115 ~ 122 : BMS Serial number + case 120: + case 121: + case 122: + case 123: + case 124: + case 125: + case 126: + case 127: + int snReg = reg_addr - 120; + rSystemData.Information.BMS_SN[(snReg * 2) + 0] = (byte)(reg_value >> 8); + rSystemData.Information.BMS_SN[(snReg * 2) + 1] = (byte)(reg_value >> 0); + if (reg_addr == 127) + { + rSystemData.Information.HwSerialNumber = Encoding.Default.GetString(rSystemData.Information.BMS_SN).Trim('\0'); + } + break; + + case 130: rSystemData.ParamData.EnvLowTempWarning = (short)(reg_value - 50); break; + case 131: rSystemData.ParamData.EnvLowTempTrip = (short)(reg_value - 50); break; + case 132: rSystemData.ParamData.EnvLowTempRelease = (short)(reg_value - 50); break; + case 133: rSystemData.ParamData.EnvHighTempWarning = (short)(reg_value - 50); break; + case 134: rSystemData.ParamData.EnvHighTempTrip = (short)(reg_value - 50); break; + case 135: rSystemData.ParamData.EnvHighTempRelease = (short)(reg_value - 50); break; + + case 136: // Anti-Theft Communication + rSystemData.CalibrationData.AntiTheft.Comm = reg_value; + break; + case 137: // Anti-Theft Gyro-Scope + rSystemData.CalibrationData.AntiTheft.GyroScope = reg_value; + break; + + case 138: // Cell Voltage #17 + case 139: // Cell Voltage #18 + case 140: // Cell Voltage #19 + case 141: // Cell Voltage #20 + case 142: // Cell Voltage #21 + case 143: // Cell Voltage #22 + case 144: // Cell Voltage #23 + case 145: // Cell Voltage #24 + case 146: // Cell Voltage #25 + case 147: // Cell Voltage #26 + case 148: // Cell Voltage #27 + case 149: // Cell Voltage #28 + case 150: // Cell Voltage #29 + case 151: // Cell Voltage #30 + case 152: // Cell Voltage #31 + case 153: // Cell Voltage #32 + case 154: // Cell Voltage #33 + case 155: // Cell Voltage #34 + case 156: // Cell Voltage #35 + case 157: // Cell Voltage #36 + case 158: // Cell Voltage #37 + case 159: // Cell Voltage #38 + case 160: // Cell Voltage #39 + rSystemData.ValueData.CellVoltage[reg_addr - 138 + 16] = (ushort)(reg_value / 1); + break; + + case 163: // 0xA3 + case 164: // 0xA4 + case 165: // 0xA5 + case 166: // 0xA6 + int ManuDateReg = reg_addr - 163; + rSystemData.Information.ManuDate_Byte[(ManuDateReg * 2) + 0] = (byte)(reg_value >> 8); + rSystemData.Information.ManuDate_Byte[(ManuDateReg * 2) + 1] = (byte)(reg_value >> 0); + if (reg_addr == 166) + { + rSystemData.Information.ManufacturingDate = Encoding.Default.GetString(rSystemData.Information.ManuDate_Byte).Trim('\0'); + } + break; + } + } + catch (Exception ex) + { + MessageBox.Show(string.Format("{0} - ({1})", ex, reg_addr), "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + csMakeDataFunction.MakeAlarm(ref rSystemData); + } + + public static short MakeUartWarningData(short rdata) + { + short result = 0; + bool[] bAlarm = csUtils.Int16ToBitArray(rdata); + + if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV + if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV + if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV + if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV + + if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC + if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC + + if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer + if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Tempratuer + if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Tempratuer + if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer + if (bAlarm[12] == true) result |= (short)(1 << 11); // 0x0200:SOC Low + + return result; + } + + public static short MakeUartTripData(short rdata) + { + short result = 0; + bool[] bAlarm = csUtils.Int16ToBitArray(rdata); + + if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV + if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV + if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV + if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV + + if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC + if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC + + if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer + if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Tempratuer + if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Tempratuer + if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer + if (bAlarm[13] == true) result |= (short)(1 << 9); // 0x0200:Short Circuit Protection + + return result; + } + + private static short MakeUartErrorData(short rdata, short cdata) + { + short result = cdata; + bool[] bAlarm = csUtils.Int16ToBitArray(rdata); + + if (bAlarm[0] == true) result |= (short)(1 << 9); // 0x0001:Voltage error + if (bAlarm[1] == true) result |= (short)(1 << 9); // 0x0002:Temperature error + if (bAlarm[2] == true) result |= (short)(1 << 9); // 0x0004: 电流检测Error + if (bAlarm[3] == true) result |= (short)(1 << 9); // 0x0010:Cell unbalance + + return result; + } + } +} diff --git a/LFP_Manager/Function/CsSerialCommFunctionDelta.cs b/LFP_Manager/Function/CsSerialCommFunctionDelta.cs new file mode 100644 index 0000000..77f9536 --- /dev/null +++ b/LFP_Manager/Function/CsSerialCommFunctionDelta.cs @@ -0,0 +1,961 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using LFP_Manager.DataStructure; +using LFP_Manager.Utils; +using LFP_Manager.Controls; +using System.Web.Services.Description; +using DevExpress.XtraTreeList; +using SnmpSharpNet; +using DevExpress.XtraGrid.Views.BandedGrid.Handler; +using static DevExpress.Xpo.Helpers.AssociatedCollectionCriteriaHelper; + +namespace LFP_Manager.Function +{ + class CsSerialCommFunctionDelta + { + public const byte READ_COIL_STATUS = 0x01; + public const byte READ_HOLDING_REG = 0x03; + public const byte READ_INPUT_REG = 0x04; //Byul 구문 추가 필요 + public const byte FORCE_SINGLE_COIL = 0x05; + public const byte PRESET_SINGLE_REG = 0x06; + public const byte PRESET_MULTI_REG = 0x10; + public const byte WRITE_COIL_REG = 0x0F; + public const byte ERROR_REG = 0x90; + + public const byte READ_WRITE_REG = 0x17; + public const byte SPECIAL_REG_02 = 0x19; + public const byte READ_DEV_ID = 0x2B; + + public const byte FW_FLASH_ERASE_CMD = 0x43; + public const byte FW_FLASH_WRITE_CMD = 0x31; + + public const byte NO_CMD = 0xFF; + + public static byte[] GetCRC(byte[] pby, int nSize) + { + ushort uIndex, i; + ushort crc; + byte uchCRCHi = 0xff; + byte uchCRCLo = 0xff; + byte[] result = new byte[2]; + + for (i = 0; i < nSize; i++) + { + uIndex = (ushort)((int)uchCRCLo ^ (int)pby[i]); + uchCRCLo = (byte)(uchCRCHi ^ csConstData.CRC_Data.auchCRCHi[uIndex]); + uchCRCHi = csConstData.CRC_Data.auchCRCLo[uIndex]; + } + crc = (ushort)((uchCRCHi << 8) | uchCRCLo); + + result[0] = (byte)(crc >> 8); + result[1] = (byte)(crc >> 0); + + return result; + } + + static public byte[] MakeReadRegisterData(ushort DevID, ushort cmd, ushort ReadAddr, ushort Size) + { + byte[] result = new byte[8]; + byte[] crc; + + result[0] = (byte)DevID; // Device ID + result[1] = (byte)cmd; // Command + result[2] = (byte)(ReadAddr >> 8); // Register Address MSB + result[3] = (byte)(ReadAddr >> 0); // Register Address LSB + result[4] = (byte)(Size >> 8); // Count of Register MSB + result[5] = (byte)(Size >> 0); // Count of Register LSB + + crc = GetCRC(result, 6); + + result[6] = crc[1]; // CRCH + result[7] = crc[0]; // CRCL + + return result; + } + + static public byte[] MakeWriteCoilData(ushort DevID, ushort WriteAddr, short WriteData) + { + byte[] result = new byte[7 + (1 * 1) + 2]; + byte[] crc; + ushort i = 0; + + result[i++] = (byte)DevID; // Device ID + result[i++] = (byte)WRITE_COIL_REG; // Command + result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB + result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB + result[i++] = (byte)(1 >> 8); // Count of Register MSB + result[i++] = (byte)(1 >> 0); // Count of Register LSB + result[i++] = (byte)(1 * 1); // Byte Count - [2 * (Num of register)] + + result[i++] = (byte)(WriteData >> 0); + + crc = GetCRC(result, i); + + result[i++] = crc[1]; // CRCH + result[i++] = crc[0]; // CRCL + + return result; + } + + static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, short WriteData) + { + byte[] result = new byte[9 + (1 * 2)]; + byte[] crc; + ushort i = 0; + + result[i++] = (byte)DevID; // Device ID + result[i++] = (byte)PRESET_MULTI_REG; // Command + result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB + result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB + result[i++] = (byte)(1 >> 8); // Count of Register MSB + result[i++] = (byte)(1 >> 0); // Count of Register LSB + result[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)] + + result[i++] = (byte)(WriteData >> 8); + result[i++] = (byte)(WriteData >> 0); + + crc = GetCRC(result, i); + + result[i++] = crc[1]; // CRCH + result[i++] = crc[0]; // CRCL + + return result; + } + + static public byte[] MakeReadDevIdRegReqData(ushort DevID, ushort cmd, ushort ReadAddr) + { + byte[] result = new byte[7]; + byte[] crc; + + result[0] = (byte)DevID; // Device ID + result[1] = (byte)cmd; // Command + result[2] = (byte)0x0E; // MEI Type + result[3] = (byte)0x02; // Read Dev Id code + result[4] = (byte)ReadAddr; // Object Id + + crc = GetCRC(result, 5); + + result[5] = crc[1]; // CRCH + result[6] = crc[0]; // CRCL + + return result; + } + + static short GetRegister(ushort reg_addr, ref DeviceParamData aParam) + { + short result = 0; + + switch (reg_addr) + { + //case 19: result = (short)(0 >> 16); break; // 0021 : UTC TimeStamp MSB + //case 20: result = (short)(58 >> 0); break; // 0022 : UTC TimeStamp LSB + //case 21: result = (short)0x1000; break; // 0023 : Cell Balancing Flag + //case 22: result = (short)0x0000; break; // 0024 : Cell Balancing Voltage + //case 23: result = (short)15; break; // 0024 : Cell Balancing Time + + case 0x4002: result = (short)aParam.CellUnderVoltageWarning; break; // 0061 : Low cell voltage warning data + //case 33: result = (short)param.sf1.voltage.CUV_Threshold; break; // 0062 : Low cell voltage protection data + //case 34: result = (short)param.sf1.voltage.CUV_Recovery; break; // 0063 : Low cell voltage recovery data + //case 35: result = (short)param.sf1.voltage.SUV_Warning; break; // 0064 : Low voltage warning data + //case 36: result = (short)param.sf1.voltage.SUV_Threshold; break; // 0065 : Low voltage protection data + //case 37: result = (short)param.sf1.voltage.SUV_Recovery; break; // 0066 : Low voltage recovery data + //case 38: result = (short)param.sf1.voltage.COV_Warning; break; // 0067 : Over cell voltage warning data + //case 39: result = (short)param.sf1.voltage.COV_Threshold; break; // 0068 : Over cell voltage protection data + //case 40: result = (short)param.sf1.voltage.COV_Recovery; break; // 0069 : Over cell voltage recovery data + //case 41: result = (short)param.sf1.voltage.SOV_Warning; break; // 0070 : Over voltage warning data + //case 42: result = (short)param.sf1.voltage.SOV_Threshold; break; // 0071 : Over voltage protection data + //case 43: result = (short)param.sf1.voltage.SOV_Recovery; break; // 0072 : Over voltage recovery data + + //case 44: result = (short)param.sf1.temperature.OT_Chg_Warning; break; // 0044 : Charge over temperature warning data + //case 45: result = (short)param.sf1.temperature.OT_Chg_Threshold; break; // 0045 : Charge over temperature protection data + //case 46: result = (short)param.sf1.temperature.OT_Chg_Recovery; break; // 0046 : Charge over temperature recovery data + //case 47: result = (short)param.sf1.temperature.OT_Chg_Time; break; // 0047 : Charge over temperature time + + //case 48: result = (short)param.sf1.temperature.OT_Dsg_Warning; break; // 0048 : Discharge over temperature warning data + //case 49: result = (short)param.sf1.temperature.OT_Dsg_Threshold; break; // 0049 : Discharge over temperature protection data + //case 50: result = (short)param.sf1.temperature.OT_Dsg_Recovery; break; // 0050 : Discharge over temperature recovery data + //case 51: result = (short)param.sf1.temperature.OT_Dsg_Time; break; // 0051 : Discharge over temperature time + } + + return result; + } + + static byte[] ModBusGetRegWordToBytes(ushort addr, ref DeviceParamData aParam) + { + short data; + byte[] result = new byte[2]; + + data = GetRegister(addr, ref aParam); + + result[0] = (byte)(data >> 8); + result[1] = (byte)(data >> 0); + + return result; + } + + static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, ushort reg_len, ref DeviceParamData aParam) + { + int tlen = (reg_len * 2) + 7 + 2; + byte[] result = new byte[tlen]; + byte[] tmp; + byte[] crc; + + result[0] = (byte)DevID; // Device ID + result[1] = (byte)PRESET_MULTI_REG; // Command + result[2] = (byte)(WriteAddr >> 8); // Register Address MSB + result[3] = (byte)(WriteAddr >> 0); // Register Address LSB + result[4] = (byte)(reg_len >> 8); // Count of Register MSB + result[5] = (byte)(reg_len >> 0); // Count of Register LSB + result[6] = (byte)(reg_len * 2); ; // Current Value MSB + + for (int i = 0; i < reg_len; i++) + { + tmp = ModBusGetRegWordToBytes((ushort)(WriteAddr + i), ref aParam); + result[7 + (i * 2) + 0] = tmp[0]; + result[7 + (i * 2) + 1] = tmp[1]; + } + crc = GetCRC(result, 8); + + result[tlen - 2] = crc[0]; // CRCH + result[tlen - 1] = crc[1]; // CRCL + + return result; + } + + static public byte[] MakeReadWriteRegisterData(ushort DevID, ushort WriteAddr, short WriteData) + { + byte[] result = new byte[15]; + byte[] crc; + ushort i = 0; + + result[i++] = (byte)DevID; // Device ID + result[i++] = (byte)READ_WRITE_REG; // Command + result[i++] = (byte)(WriteAddr >> 8); // Read Register Address MSB + result[i++] = (byte)(WriteAddr >> 0); // Read Register Address LSB + result[i++] = (byte)(0 >> 8); // Read Count of Register MSB + result[i++] = (byte)(0 >> 0); // Read Count of Register LSB + result[i++] = (byte)(WriteAddr >> 8); // Write Register Address MSB + result[i++] = (byte)(WriteAddr >> 0); // Write Register Address LSB + result[i++] = (byte)(1 >> 8); // Write Count of Register MSB + result[i++] = (byte)(1 >> 0); // Write Count of Register LSB + result[i++] = (byte)(1 * 2); // Byte Count - [2 * (Num of register)] + + result[i++] = (byte)(WriteData >> 8); + result[i++] = (byte)(WriteData >> 0); + + crc = GetCRC(result, i); + + result[i++] = crc[0]; // CRCH + result[i++] = crc[1]; // CRCL + + return result; + } + + public static byte[] MakeCheckSum(byte[] sData, int offset, int len, bool flag) + { + byte[] result = new byte[2]; + int checksum = 0; + + for (int i = 0; i < len; i++) + { + checksum += sData[i + offset]; + } + + checksum = ~checksum + 1; + + result[0] = (byte)(checksum >> 8); + result[1] = (byte)checksum; + + return result; + } + + private static byte[] MakeTxPacket(byte[] sData, int len) + { + string str = ""; + byte[] result; + char[] chrArray; + int checksum = 0; + string checksumStr = ""; + char[] checksumChr; + + str = "~"; + + for (int i = 0; i < len; i++) + { + str += sData[i].ToString("X2"); + } + + str += "\r"; + + chrArray = str.ToCharArray(); + + for (int i = 0; i < (chrArray.Length - 6); i++) + { + checksum += chrArray[i + 1]; + } + + checksum = ~checksum + 1; + + checksumStr = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum); + checksumChr = checksumStr.ToCharArray(); + + for (int i = 0; i < 4; i++) + { + chrArray[chrArray.Length - 5 + i] = checksumChr[i]; + } + + result = new byte[chrArray.Length]; + + for (int i = 0; i < chrArray.Length; i++) + { + result[i] = (byte)chrArray[i]; + } + + return result; + } + + public static byte[] LengthLchk(int sLen) + { + byte[] result = new byte[2]; + int lchksum = 0; + + lchksum = (~(((sLen >> 8) & 0xF) + + ((sLen >> 4) & 0xF) + + ((sLen >> 0) & 0xF)) + 1) % 16; + lchksum = ((lchksum << 12) | sLen); + + result[0] = (byte)(lchksum >> 8); + result[1] = (byte)(lchksum >> 0); + + return result; + } + + public static byte[] MakeTxData(byte addr, byte cmd, int sLen) + { + int buffCh = 0; + byte[] sData; + byte[] lenId; + byte[] checksum; + + sData = new byte[((sLen > 0) ? 11 : 10)]; + + sData[buffCh] = 0x7E; buffCh++; // SOI + sData[buffCh] = 0x25; buffCh++; // VER + sData[buffCh] = addr; buffCh++; // ADDR + sData[buffCh] = 0x46; buffCh++; // CID1 + sData[buffCh] = cmd; buffCh++; // CID2 (CMD) + + lenId = LengthLchk(sLen); // LENID + sData[buffCh] = lenId[0]; buffCh++; // LENID MSB + sData[buffCh] = lenId[1]; buffCh++; // LENID LSB + + if (sLen > 0) + { + sData[buffCh] = (byte)(sLen / 2); buffCh++; // INFO + } + + checksum = csSerialCommFunction.MakeCheckSum(sData, 1, sData.Length - 4, false); + + sData[buffCh] = checksum[1]; buffCh++; + sData[buffCh] = checksum[0]; buffCh++; + + sData[buffCh] = 0x0D; buffCh++; // EOI + + return MakeTxPacket(sData, sData.Length); + } + + public static int TbPacketCheck(byte[] rdata, int rlen) + { + int result = 0; + byte[] cdata; + byte[] checksum; + byte[] checksum1; + + checksum = MakeCheckSum(rdata, 1, rlen - 6, false); + + checksum1 = new byte[2]; + checksum1[0] = csUtils.StrByte2toByte(rdata[rlen - 4], rdata[rlen - 5]); + checksum1[1] = csUtils.StrByte2toByte(rdata[rlen - 2], rdata[rlen - 3]); + + + if ((checksum[0] == checksum1[0]) && (checksum[1] == checksum1[1])) + { + cdata = csUtils.StrToByteArray(rdata, 0, rlen); + + result = 1; + } + + return result; + } + + static public int ModbusPacketFromSlaveCheck(byte[] rdata, ushort rlen) + { + int result = 0; + byte[] cdata, crc; + ushort clen, bytecount; + + if (rlen > 2) + { + cdata = rdata; + + switch (cdata[1]) + { + case READ_DEV_ID: + if (rlen < 10) break; + if (rdata[7] == 0) break; + + int tmp = 0; + int cPos = 7; + int alen = 0; + for (int i = 0; i < cdata[7]; i++) + { + alen = cdata[cPos + 2]; + cPos += alen + 2; + if (rlen < (cPos + 3)) + { + tmp = 1; + break; + } + } + if (tmp == 1) break; + + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[1] == cdata[rlen - 2]) && (crc[0] == cdata[rlen - 1])) result = 1; + else result = -1; + break; + case READ_COIL_STATUS: + case READ_HOLDING_REG: + case READ_INPUT_REG: + case READ_WRITE_REG: + bytecount = cdata[2]; + clen = (ushort)(bytecount + 5); // header 3, tail 2 + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[1] == cdata[rlen - 2]) && (crc[0] == cdata[rlen - 1])) result = 1; + else result = -1; + } + break; + case PRESET_MULTI_REG: + case FORCE_SINGLE_COIL: + case PRESET_SINGLE_REG: + clen = 8; + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1; + else result = -1; + } + break; + case ERROR_REG: + clen = 6; + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1; + else result = -1; + } + break; + case FW_FLASH_ERASE_CMD: + clen = 5; + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2; + else result = -1; + } + break; + case FW_FLASH_WRITE_CMD: + clen = 5; + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2; + else result = -1; + } + break; + default: + result = -1; + break; + } + } + return result; + } + + public static short[] SerialRxProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + short[] result = new short[2]; + + switch (rData[1]) + { + case READ_HOLDING_REG: // 0x03 + ReadHoldingRegisterProcess(rData, rRegAddr, rLen, ref rSystemData); + break; + case READ_INPUT_REG: // 0x04 + ReadInputRegisterProcess(rData, rRegAddr, rLen, ref rSystemData); + break; + case READ_WRITE_REG: // 0x17 + //ReadSP1RegisterProcess(rData, rRegAddr, rLen, ref rSystemData); + break; + case SPECIAL_REG_02: // 0x19 + //ReadInputRegisterProcess(rData, rRegAddr, rLen, ref rSystemData); + break; + case READ_DEV_ID: // 0x2B + ReadDevIdRegisterProcess(rData, rRegAddr, rLen, ref rSystemData); + break; + case PRESET_MULTI_REG: + // read_holding_reg_process(reverse16(rsp->start_addr, true), reverse16(rsp->qty_reg, true)); + //result[0] = 1; + //result[1] = 1; + break; + case ERROR_REG: + result[0] = 2; + result[1] = (short)((rData[0] << 8) | rData[1]); + break; + } + return result; + } + + private static void ReadCoilRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + int i, j; + short reg_count; + short reg_value; + i = 2; + reg_count = rData[i]; + + i++; + for (j = 0; j < reg_count; j++) + { + reg_value = (short)(rData[i + j]); + SetCoilRegister((short)(rRegAddr + j), reg_value, ref rSystemData); + i++; + } + } + + private static void ReadHoldingRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + int i, j; + short reg_count; + short reg_value; + i = 2; + reg_count = (short)(rData[i] / 2); i += 1; + + for (j = 0; j < reg_count; j++) + { + reg_value = (short)(rData[i] << 8 | rData[i + 1]); + SetHoldingRegister((short)(rRegAddr + j), reg_value, ref rSystemData); + i += 2; + } + } + private static void ReadInputRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + int i, j; + short reg_count; + short reg_value; + i = 2; + reg_count = (short)(rData[i] / 2); i += 1; + + for (j = 0; j < reg_count; j++) + { + reg_value = (short)(rData[i] << 8 | rData[i + 1]); + SetInputRegister((short)(rRegAddr + j), reg_value, ref rSystemData); + i += 2; + } + } + private static void ReadDevIdRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + int cPos = 7; + int alen = 0; + int regCount = rData[7]; + int oID = 0; + + for (int i = 0; i < regCount; i++) + { + oID = rData[cPos + 1]; + alen = rData[cPos + 2]; + byte[] tmp = new byte[alen]; + for (int j = 0; j < alen; j++) { tmp[j] = rData[cPos + 3 + j]; } + + switch (oID) + { + case 0x00: rSystemData.Information.VendorName = Encoding.ASCII.GetString(tmp).Trim('\0'); break; + case 0x01: rSystemData.Information.ProductCode = Encoding.ASCII.GetString(tmp).Trim('\0'); break; + case 0x02: rSystemData.Information.MajorMinorRev = Encoding.ASCII.GetString(tmp).Trim('\0'); break; + //case 0x05: rSystemData.Information.ModelName = Encoding.ASCII.GetString(tmp).Trim('\0'); break; + //case 0x82: rSystemData.Information.HwSerialNumber = Encoding.ASCII.GetString(tmp).Trim('\0'); break; + //case 0x83: rSystemData.Information.HwProductRev = Encoding.ASCII.GetString(tmp).Trim('\0'); break; + //case 0x84: rSystemData.Information.ManufacturingDate = Encoding.ASCII.GetString(tmp).Trim('\0'); break; + //case 0x86: rSystemData.Information.SwProductRev = Encoding.ASCII.GetString(tmp).Trim('\0'); break; + } + + cPos += alen + 2; + if (rLen < (cPos + 3)) + { + break; + } + } + } + private static void ReadSP2RegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + int i, j; + short reg_count; + short reg_value; + i = 2; + reg_count = (short)(rData[i] / 2); i += 1; + + for (j = 0; j < reg_count; j++) + { + reg_value = (short)(rData[i] << 8 | rData[i + 1]); + SetSP2Register((short)(rRegAddr + j), reg_value, ref rSystemData); + i += 2; + } + } + private static void ReadSP1RegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + int i, j; + short reg_count; + short reg_value; + i = 2; + reg_count = (short)(rData[i] / 2); i += 1; + + for (j = 0; j < reg_count; j++) + { + reg_value = (short)(rData[i] << 8 | rData[i + 1]); + SetSP1Register((short)(rRegAddr + j), reg_value, ref rSystemData); + i += 2; + } + } + + private static readonly int CURRENT_OFFSET = 10000; + private static readonly int TEMP_OFFSET = 400; + + private static short MakeWarningData_AMG(short reg_value) + { + byte[] reg_byte = new byte[2]; + ushort result = 0; + + reg_byte[1] = (byte)(reg_value >> 8); + reg_byte[0] = (byte)(reg_value >> 0); + + if (((reg_byte[0] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 4); // Cell Over Voltage + if (((reg_byte[0] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 5); // Cell Under Voltage + if (((reg_byte[0] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 2); // Pack Over Voltage + if (((reg_byte[0] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 3); // Pack Under Voltage + if (((reg_byte[0] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 6); // Charge Over Current + if (((reg_byte[0] >> 5) & 0x01) == 0x01) result |= (ushort)(1 << 7); // Discharge Over Current + if (((reg_byte[0] >> 6) & 0x01) == 0x01) result |= (ushort)(1 << 14); // ENV Over Temperature + if (((reg_byte[0] >> 7) & 0x01) == 0x01) result |= (ushort)(1 << 15); // ENV Under Temperature + + if (((reg_byte[1] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Chg Over Temperature + if (((reg_byte[1] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Chg Under Temperature + if (((reg_byte[1] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Dch Over Temperature + if (((reg_byte[1] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Dch Under Temperature + if (((reg_byte[1] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 11); // SOC Low Alarm + if (((reg_byte[1] >> 5) & 0x01) == 0x01) result |= (ushort)(1 << 9); // Diff Voltage Alarm + if (((reg_byte[1] >> 6) & 0x01) == 0x01) result |= (ushort)(1 << 13); // CB On/OFF (1: OFF, 0: ON) + if (((reg_byte[1] >> 7) & 0x01) == 0x01) result |= (ushort)(1 << 12); // reserved + + return (short)result; + } + + private static short MakeProtectData_AMG(short reg_value) + { + byte[] reg_byte = new byte[2]; + ushort result = 0; + + reg_byte[1] = (byte)(reg_value >> 8); + reg_byte[0] = (byte)(reg_value >> 0); + + if (((reg_byte[0] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 4); // Cell Over Voltage + if (((reg_byte[0] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 2); // Pack Over Voltage + if (((reg_byte[0] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 5); // Cell Under Voltage + if (((reg_byte[0] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 3); // Pack Under Voltage + if (((reg_byte[0] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 6); // Cha Over Current 1 + if (((reg_byte[0] >> 5) & 0x01) == 0x01) result |= (ushort)(1 << 6); // Cha Over Current 2 + if (((reg_byte[0] >> 6) & 0x01) == 0x01) result |= (ushort)(1 << 7); // Dch Over Current 1 + if (((reg_byte[0] >> 7) & 0x01) == 0x01) result |= (ushort)(1 << 7); // Dch Over Current 2 + + if (((reg_byte[1] >> 0) & 0x01) == 0x01) result |= (ushort)(1 << 8); // SC Protect / CB off + if (((reg_byte[1] >> 1) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Chg Over Temperature + if (((reg_byte[1] >> 2) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Chg Under Temperature + if (((reg_byte[1] >> 3) & 0x01) == 0x01) result |= (ushort)(1 << 0); // Dch Over Temperature + if (((reg_byte[1] >> 4) & 0x01) == 0x01) result |= (ushort)(1 << 1); // Dch Under Temperature + + return (short)result; + } + + private static void MakeAlarm(ref DeviceSystemData rSystemData) + { + if (((rSystemData.StatusData.faultstatus >> 14) & 0x0001) == 0x0001) + { + rSystemData.StatusData.batteryStatus = 4; // Anti-theft Gyroscope + } + else if (((rSystemData.StatusData.faultstatus >> 15) & 0x0001) == 0x0001) + { + rSystemData.StatusData.batteryStatus = 5; // Anti-theft Comm. + } + else if (rSystemData.StatusData.protection != 0x0000) + { + rSystemData.StatusData.batteryStatus = 2; + } + else if (rSystemData.StatusData.warning != 0x0000) + { + rSystemData.StatusData.batteryStatus = 1; + } + else + { + rSystemData.StatusData.batteryStatus = 0; + } + } + + private static void SetHoldingRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData) + { + switch (reg_addr) + { + //100 ~111 : Model_Product Name + case 100: + case 101: + case 102: + case 103: + case 104: + case 105: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + int mReg = reg_addr - 100; + rSystemData.Information.Model_Byte[(mReg * 2) + 0] = (byte)(reg_value >> 8); + rSystemData.Information.Model_Byte[(mReg * 2) + 1] = (byte)(reg_value >> 0); + if (reg_addr == 111) + { + rSystemData.Information.ModelName = Encoding.Default.GetString(rSystemData.Information.Model_Byte).Trim('\0'); + } + break; + //112 ~114 : FW Version + case 112: + case 113: + case 114: + int fReg = reg_addr - 112; + rSystemData.Information.FwVer_Byte[(fReg * 2) + 0] = (byte)(reg_value >> 8); + rSystemData.Information.FwVer_Byte[(fReg * 2) + 1] = (byte)(reg_value >> 0); + if (reg_addr == 114) + { + rSystemData.Information.SwProductRev = Encoding.Default.GetString(rSystemData.Information.FwVer_Byte).Trim('\0'); + } + break; + //115 ~ 122 : BMS Serial number + case 115: + case 116: + case 117: + case 118: + case 119: + case 120: + case 121: + case 122: + int snReg = reg_addr - 115; + rSystemData.Information.BMS_SN[(snReg * 2) + 0] = (byte)(reg_value >> 8); + rSystemData.Information.BMS_SN[(snReg * 2) + 1] = (byte)(reg_value >> 0); + if (reg_addr == 122) + { + rSystemData.Information.HwSerialNumber = Encoding.Default.GetString(rSystemData.Information.BMS_SN).Trim('\0'); + } + break; + default: + break; + } + } + + private static void SetInputRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData) + { + switch (reg_addr) + { + case 0x0FFF: + rSystemData.ValueData.voltageOfPack = (short)(reg_value / 10); + rSystemData.active = true; + break; // 48.00V = 4800 + case 0x1000: rSystemData.ValueData.current = (short)(reg_value - CURRENT_OFFSET); break; // 100.0A = 1000 -10000 = 0; + case 0x1001: rSystemData.ValueData.remainingCapacity = (short)(reg_value / 1); break; // 100.0Ah = 1000 + case 0x1002: rSystemData.ValueData.Ext1Temperature = (short)(reg_value - TEMP_OFFSET); break; // 10.0C = 100 + case 0x1003: rSystemData.ValueData.Ext2Temperature = (short)(reg_value - TEMP_OFFSET); break; // 10.0C = 100 + + case 0x1004: rSystemData.StatusData.warning = MakeWarningData_AMG(reg_value); break; // Warning Status + case 0x1005: rSystemData.StatusData.protection = MakeProtectData_AMG(reg_value); break; // Protection Status + case 0x1006: // Fault Status + rSystemData.StatusData.faultstatus = (short)(reg_value / 1); + rSystemData.StatusData.status = (short)((reg_value >> 8) & 0x0003); + MakeAlarm(ref rSystemData); + break; // Fault Status + + case 0x1007: rSystemData.ValueData.rSOC = (short)(reg_value / 10); break; // 100.00% = 10000 + case 0x1008: rSystemData.ValueData.stateOfHealth = (short)(reg_value / 10); break; // 100.00% = 10000 + + case 0x1009: rSystemData.ValueData.fullChargeCapacity = (short)(reg_value / 1); break; // 100.0Ah = 1000 + case 0x100A: rSystemData.ValueData.cycleCount = (short)(reg_value / 1); break; // 100 cycles = 100 + case 0x100B: rSystemData.ValueData.NumOfCells = (short)(reg_value / 1); break; // 15 cells = 15 + case 0x100C: + case 0x100D: + case 0x100E: + case 0x100F: + case 0x1010: + case 0x1011: + case 0x1012: + case 0x1013: + case 0x1014: + case 0x1015: + case 0x1016: + case 0x1017: + case 0x1018: + case 0x1019: + case 0x101A: + case 0x101B: // 3.256V = 3256 + int cNo = reg_addr - 0x100C; + if (cNo < 15) + { rSystemData.ValueData.CellVoltage[cNo] = (ushort)(reg_value / 1); } + csUtils.MakeMaxAvgMinCellVoltage(ref rSystemData, 15); + break; // 100.00% = 10000 + case 0x101C: rSystemData.ValueData.NumOfTemps = (short)(reg_value / 1); break; // 5 temps = 5 + case 0x101D: + case 0x101E: + case 0x101F: + case 0x1020: // 25.3C = 253 - 400 = -147 (Offset -400) + int tNo = reg_addr - 0x101D; + rSystemData.ValueData.CellTemperature[tNo] = (short)(reg_value - TEMP_OFFSET); + csUtils.MakeMaxAvgMinTemperature(ref rSystemData, 4); + break; // 100.00% = 10000 + case 0x1021: rSystemData.MaxValue.MaxChgCurrent = (short)(reg_value); break; // Max. Charge Current + case 0x1022: rSystemData.MaxValue.MaxChgTemperature = (short)(reg_value - TEMP_OFFSET); break; // Max. Charge Temperature + case 0x1023: rSystemData.MaxValue.MinChgTemperature = (short)(reg_value - TEMP_OFFSET); break; // Min. Charge Temperature + case 0x1024: rSystemData.MaxValue.FloatChgVolt = (short)(reg_value / 10); break; // Float Charge Current + case 0x1025: rSystemData.MaxValue.BoostChgVolt = (short)(reg_value / 10); break; // Boost Charge Current + + case 0x3000: rSystemData.CalibrationData.AntiTheftComm.TimeOut = (short)(reg_value / 1); break; + case 0x3002: rSystemData.CalibrationData.AntiTheftComm.FuncSwitch = (short)(reg_value / 1); break; + + case 0x4000: rSystemData.CalibrationData.AntiTheftGyro.XAxis = (short)(reg_value / 1); break; + case 0x4001: rSystemData.CalibrationData.AntiTheftGyro.YAxis = (short)(reg_value / 1); break; + case 0x4002: rSystemData.CalibrationData.AntiTheftGyro.ZAxis = (short)(reg_value / 1); break; + case 0x4003: rSystemData.CalibrationData.AntiTheftGyro.GyroPolicySel = (short)(reg_value / 1); break; + case 0x4004: rSystemData.CalibrationData.AntiTheftGyro.GyroFuncSwitch = (short)(reg_value / 1); break; + case 0x4006: rSystemData.CalibrationData.AntiTheftGyro.GyroState = (short)(reg_value / 1); break; + default: + break; + } + } + + private static void SetSP1Register(short reg_addr, short reg_value, ref DeviceSystemData rSystemData) + { + switch (reg_addr) + { + case 0x4000: rSystemData.GyroValue.X_axis = (short)(reg_value); break; // + case 0x4001: rSystemData.GyroValue.Y_axis = (short)(reg_value); break; // + case 0x4002: rSystemData.GyroValue.Z_axis = (short)(reg_value); break; // + case 0x4003: rSystemData.GyroValue.Gyro_policy_sel = (short)(reg_value); break; // + case 0x4004: rSystemData.GyroValue.Gyro_func_sw = (short)(reg_value); break; // + case 0x4006: rSystemData.GyroValue.Gyro_state = (short)(reg_value); break; // + default: + break; + } + } + private static void SetSP2Register(short reg_addr, short reg_value, ref DeviceSystemData rSystemData) + { + switch (reg_addr) + { + case 0x3000: rSystemData.GyroValue.X_axis = (short)(reg_value); break; // + case 0x3002: rSystemData.GyroValue.Y_axis = (short)(reg_value); break; // + default: + break; + } + } + private static void SetReadIdRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData) + { + switch (reg_addr) + { + case 0x4000: rSystemData.GyroValue.X_axis = (short)(reg_value); break; // + case 0x4001: rSystemData.GyroValue.Y_axis = (short)(reg_value); break; // + case 0x4002: rSystemData.GyroValue.Z_axis = (short)(reg_value); break; // + case 0x4003: rSystemData.GyroValue.Gyro_policy_sel = (short)(reg_value); break; // + case 0x4004: rSystemData.GyroValue.Gyro_func_sw = (short)(reg_value); break; // + case 0x4006: rSystemData.GyroValue.Gyro_state = (short)(reg_value); break; // + default: + break; + } + } + + private static void SetCoilRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData) + { + switch (reg_addr) + { + case 0x3078: + rSystemData.StatusData.relayStatus = reg_value; + rSystemData.CalibrationData.FetCalib.FetStatus = reg_value; + break; + case 0x502E: + rSystemData.CalibrationData.Current.ChargeOption = reg_value; + break; + } + } + + private static short MakeUartWarningData(short rdata) + { + short result = 0; + bool[] bAlarm = csUtils.Int16ToBitArray(rdata); + + if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV + if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV + if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV + if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV + + if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC + if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC + + if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer + if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Tempratuer + if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Tempratuer + if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer + if (bAlarm[12] == true) result |= (short)(1 << 11); // 0x0200:SOC Low + + return result; + } + + private static short MakeUartTripData(short rdata) + { + short result = 0; + bool[] bAlarm = csUtils.Int16ToBitArray(rdata); + + if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV + if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV + if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV + if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV + + if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC + if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC + + if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Temprature + if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Temprature + if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Temprature + if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Temprature + if (bAlarm[13] == true) result |= (short)(1 << 9); // 0x0200:Short Circuit Protection + + return result; + } + + private static short MakeUartErrorData(short rdata, short cdata) + { + short result = cdata; + bool[] bAlarm = csUtils.Int16ToBitArray(rdata); + + if (bAlarm[0] == true) result |= (short)(1 << 9); // 0x0001:Voltage error + if (bAlarm[1] == true) result |= (short)(1 << 9); // 0x0002:Temperature error + if (bAlarm[2] == true) result |= (short)(1 << 9); // 0x0004: 电流检测Error + if (bAlarm[3] == true) result |= (short)(1 << 9); // 0x0010:Cell unbalance + + return result; + } + } +} diff --git a/LFP_Manager/Function/csExcelExport.cs b/LFP_Manager/Function/csExcelExport.cs new file mode 100644 index 0000000..d1f4bab --- /dev/null +++ b/LFP_Manager/Function/csExcelExport.cs @@ -0,0 +1,191 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.IO; +using System.Data.OleDb; +using System.Text; +using System.ComponentModel; +using System.Windows.Forms; + +namespace LFP_Manager.Function +{ + public static class csExcelExport + { + public static void ExportToExcel(this DataTable dataTable, String filePath, bool overwiteFile = true) + { + if (Directory.Exists(Path.GetDirectoryName(filePath)) == false) + Directory.CreateDirectory(Path.GetDirectoryName(filePath)); + if (File.Exists(filePath) && overwiteFile) + File.Delete(filePath); + + //var conn = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=0';", filePath); + var conn = ""; + + if (filePath.IndexOf(".xlsx") > -1) // 확장자에 따라서 provider 주의 + conn = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=Yes;IMEX=3';", filePath); + else + conn = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=3';", filePath); + + using (OleDbConnection connection = new OleDbConnection(conn)) + { + connection.Open(); + using (OleDbCommand command = new OleDbCommand()) + { + command.Connection = connection; + List columnNames = new List(); + List columnTypes = new List(); + foreach (DataColumn dataColumn in dataTable.Columns) + { + columnNames.Add(dataColumn.ColumnName); + string tName = "VARCHAR"; + switch (dataColumn.DataType.Name) + { + case "Int16": tName = "INTEGER"; break; + case "Int32": tName = "INTEGER"; break; + case "Int64": tName = "INTEGER"; break; + case "Double": tName = "DOUBLE"; break; + case "String": tName = "VARCHAR"; break; + default: tName = dataColumn.DataType.Name; break; + } + columnTypes.Add(tName); + } + String tableName = !String.IsNullOrWhiteSpace(dataTable.TableName) ? dataTable.TableName : Guid.NewGuid().ToString(); + //command.CommandText = @"CREATE TABLE [{tableName}] ({String.Join(",", columnNames.Select(c => $"[{c}] VARCHAR").ToArray())});"; + //string join = String.Join(",", columnNames.Select(c => String.Format("[{0}] VARCHAR", c)).ToArray()); + string join = ""; + for (int i = 0; i < columnNames.Count; i++) + { + join += String.Format("[{0}] {1}", columnNames[i], columnTypes[i]); + if (i < (columnNames.Count - 1)) join += ","; + } + command.CommandText = String.Format("CREATE TABLE [{0}] ({1});", + tableName, + join + ); + command.ExecuteNonQuery(); + + foreach (DataRow row in dataTable.Rows) + { + List rowValues = new List(); + foreach (DataColumn column in dataTable.Columns) + { + rowValues.Add((row[column] != null && row[column] != DBNull.Value) ? row[column].ToString() : String.Empty); + } + //command.CommandText = $"INSERT INTO [{tableName}]({String.Join(",", columnNames.Select(c => $"[{c}]"))}) VALUES ({String.Join(",", rowValues.Select(r => $"'{r}'").ToArray())});"; + string a = String.Join(",", columnNames.Select(c => String.Format("[{0}]", c))); + string b = String.Join(",", rowValues.Select(r => String.Format("'{0}'", (r == "") ? "0" : r)).ToArray()); + command.CommandText = String.Format("INSERT INTO [{0}]({1}) VALUES ({2});", tableName, a, b); + command.ExecuteNonQuery(); + } + } + + connection.Close(); + } + } + + public static void ExportToExcelExt(this DataTable dataTable, String filePath, bool overwiteFile = true) + { + string result = String.Empty; + + Forms.fmxWait WaitForm = new Forms.fmxWait(); + WaitForm.StartPosition = FormStartPosition.CenterScreen; + WaitForm.ShowOnTopMode = DevExpress.XtraWaitForm.ShowFormOnTopMode.AboveParent; + + WaitForm.Show(); + + try + { + if (Directory.Exists(Path.GetDirectoryName(filePath)) == false) + Directory.CreateDirectory(Path.GetDirectoryName(filePath)); + if (File.Exists(filePath) && overwiteFile) + File.Delete(filePath); + + //var conn = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=0';", filePath); + var conn = ""; + + if (filePath.IndexOf(".xlsx") > -1) // 확장자에 따라서 provider 주의 + conn = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=Yes;IMEX=3';", filePath); + else + conn = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR=Yes;IMEX=3';", filePath); + + using (OleDbConnection connection = new OleDbConnection(conn)) + { + connection.Open(); + using (OleDbCommand command = new OleDbCommand()) + { + command.Connection = connection; + List columnNames = new List(); + List columnTypes = new List(); + foreach (DataColumn dataColumn in dataTable.Columns) + { + columnNames.Add(dataColumn.ColumnName); + string tName = "VARCHAR"; + switch (dataColumn.DataType.Name) + { + case "Boolean": tName = "VARCHAR"; break; + case "Int16": tName = "INTEGER"; break; + case "Int32": tName = "INTEGER"; break; + case "Int64": tName = "INTEGER"; break; + case "Double": tName = "DOUBLE"; break; + case "Decimal": tName = "DOUBLE"; break; + case "String": tName = "VARCHAR"; break; + default: tName = dataColumn.DataType.Name; break; + } + columnTypes.Add(tName); + } + String tableName = !String.IsNullOrWhiteSpace(dataTable.TableName) ? dataTable.TableName : Guid.NewGuid().ToString(); + //command.CommandText = @"CREATE TABLE [{tableName}] ({String.Join(",", columnNames.Select(c => $"[{c}] VARCHAR").ToArray())});"; + //string join = String.Join(",", columnNames.Select(c => String.Format("[{0}] VARCHAR", c)).ToArray()); + string join = ""; + for (int i = 0; i < columnNames.Count; i++) + { + join += String.Format("[{0}] {1}", columnNames[i], columnTypes[i]); + if (i < (columnNames.Count - 1)) join += ","; + } + command.CommandText = String.Format("CREATE TABLE [{0}] ({1});", + tableName, + join + ); + command.ExecuteNonQuery(); + + int rNo = 0; + + foreach (DataRow row in dataTable.Rows) + { + List rowValues = new List(); + foreach (DataColumn column in dataTable.Columns) + { + rowValues.Add((row[column] != null && row[column] != DBNull.Value) ? row[column].ToString().Trim('\0') : String.Empty); + } + //command.CommandText = $"INSERT INTO [{tableName}]({String.Join(",", columnNames.Select(c => $"[{c}]"))}) VALUES ({String.Join(",", rowValues.Select(r => $"'{r}'").ToArray())});"; + string a = String.Join(",", columnNames.Select(c => String.Format("[{0}]", c))); + string b = String.Join(",", rowValues.Select(r => String.Format("'{0}'", (r == "") ? "0" : r)).ToArray()); + + command.CommandText = String.Format("INSERT INTO [{0}]({1}) VALUES ({2});", tableName, a, b); + command.ExecuteNonQuery(); + + rNo++; + + WaitForm.SetDescription(String.Format("{0}//{1}", rNo, dataTable.Rows.Count)); + Application.DoEvents(); + } + } + + connection.Close(); + } + } + catch (Exception ex) + { + result = ex.Message; + } + finally + { + WaitForm.Close(); + + if (result != String.Empty) + throw new Exception(result); + } + } + } +} diff --git a/LFP_Manager/Function/csExcelFunction.cs b/LFP_Manager/Function/csExcelFunction.cs new file mode 100644 index 0000000..3f10aa2 --- /dev/null +++ b/LFP_Manager/Function/csExcelFunction.cs @@ -0,0 +1,145 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Data; +using System.Windows.Forms; + +using System.Data.OleDb; + +namespace LFP_Manager.Function +{ + public class csExcelFunction + { + public static DataTable[] ExcelImport(string Ps_FileName, string[] sheetName) + { + DataTable[] result = null; + + try + { + string ExcelConn = string.Empty; + + if (Ps_FileName.IndexOf(".xlsx") > -1) // 확장자에 따라서 provider 주의 + { + ExcelConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Ps_FileName + + ";Extended Properties='Excel 12.0;HDR=YES'"; + } + else + { + ExcelConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Ps_FileName + + ";Extended Properties='Excel 8.0;HDR=YES'"; + } + + // 첫 번째 시트의 이름을 가져옮 + using (OleDbConnection con = new OleDbConnection(ExcelConn)) + { + using (OleDbCommand cmd = new OleDbCommand()) + { + cmd.Connection = con; + con.Open(); + + DataTable dtExcelSchema = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); + + if (dtExcelSchema.Rows.Count > 0) + { + sheetName = new string[dtExcelSchema.Rows.Count]; + + for (int i = 0; i < dtExcelSchema.Rows.Count; i++) + sheetName[i] = dtExcelSchema.Rows[i]["TABLE_NAME"].ToString(); + } + con.Close(); + } + } + string msg = string.Empty; + for (int i = 0; i < sheetName.Length; i++) + msg += sheetName[i] + "\r\n"; + //MessageBox.Show("sheetName = " + msg); + + // 첫 번째 쉬트의 데이타를 읽어서 datagridview 에 보이게 함. + using (OleDbConnection con = new OleDbConnection(ExcelConn)) + { + using (OleDbCommand cmd = new OleDbCommand()) + { + using (OleDbDataAdapter oda = new OleDbDataAdapter()) + { + result = new DataTable[sheetName.Length]; + + for (int i = 0; i < sheetName.Length; i++) + { + result[i] = new DataTable(); + result[i].TableName = sheetName[i]; + cmd.CommandText = "SELECT * From [" + sheetName[i] + "]"; + cmd.Connection = con; + con.Open(); + oda.SelectCommand = cmd; + try + { + oda.Fill(result[i]); + } + catch (Exception) + { + //MessageBox.Show(e1.Message); + } + con.Close(); + } + } + } + } + } + catch (Exception e) + { + MessageBox.Show(e.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + return result; + } + + public static void ExcelExport(string Ps_FileName, string[] sheetName) + { + string ExcelConn = string.Empty; + + if (Ps_FileName.IndexOf(".xlsx") > -1) // 확장자에 따라서 provider 주의 + { + ExcelConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Ps_FileName + + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=3;READONLY=FALSE'"; + } + else + { + ExcelConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Ps_FileName + + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=3;READONLY=FALSE'"; + } + + // 첫 번째 시트의 이름을 가져옮 + using (OleDbConnection con = new OleDbConnection(ExcelConn)) + { + using (OleDbCommand cmd = new OleDbCommand()) + { + cmd.Connection = con; + con.Open(); + + DataTable dtExcelSchema = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); + + if (dtExcelSchema.Rows.Count > 0) + { + sheetName = new string[dtExcelSchema.Rows.Count]; + + for (int i = 0; i < dtExcelSchema.Rows.Count; i++) + sheetName[i] = dtExcelSchema.Rows[i]["TABLE_NAME"].ToString(); + } + con.Close(); + } + } + using (OleDbConnection connection = + new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @"C:\Users\[...]\Classeur.xls" + + ";Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1;READONLY=FALSE\"")) + { + connection.Open(); + OleDbCommand commande = new OleDbCommand( + "INSERT INTO [Feuil1$](F1,F2,F3) VALUES ('A3','B3','C3');", connection); + commande.ExecuteNonQuery(); + + connection.Close(); + connection.Dispose(); + } + } + } +} diff --git a/LFP_Manager/Function/csHistoryFunction.cs b/LFP_Manager/Function/csHistoryFunction.cs new file mode 100644 index 0000000..74c1062 --- /dev/null +++ b/LFP_Manager/Function/csHistoryFunction.cs @@ -0,0 +1,120 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; +using System.Data; + +using System.Data.SQLite; +using LFP_Manager.DataStructure; +using LFP_Manager.Utils; + +namespace LFP_Manager.Function +{ + class csHistoryFunction + { + #region DB CREATE + + public static void DbCreate(string mPath) + { + string dbFilename = mPath + csDbConstData.DataBase.FileName; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilename)) == false) + Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilename)); + + if (File.Exists(dbFilename) == false) + // Create database + SQLiteConnection.CreateFile(dbFilename); + + // Open database + string strConn = @"Data Source=" + dbFilename; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Create table + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = csDbConstData.DataBase.CreateTable; + command.ExecuteNonQuery(); + } + } + catch (Exception) + { + } + finally + { + connection.Close(); + } + } + } + + #endregion + + #region DB INSERT DATA + private void IDInsert(DataTable aData, string mPath, string Quary) + { + string dbFilename = mPath + csDbConstData.DataBase.FileName; + + // Open database + string strConn = @"Data Source=" + dbFilename; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + //WaitForm.ShowWaitForm(); + + command.CommandText = "BEGIN;"; //명시적 트렌젝션 시작 + command.ExecuteNonQuery(); + + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + //command.CommandText = "INSERT INTO " + csDbConstData.DataBase.TableName + "(id) " + " Values (@id);"; + command.CommandText = Quary; + SQLiteParameter p = new SQLiteParameter("@id", DbType.String); + + command.Parameters.Add(p); + + for (int i = 0; i < aData.Rows.Count; i++) + { + p.Value = String.Format("{0}", aData.Rows[i][0].ToString()); // id + + try + { + command.ExecuteNonQuery(); + } + catch (Exception) + { + //MessageBox.Show(e1.ToString() + ":" + i.ToString()); + } + finally + { + //System.Windows.Forms.Application.DoEvents(); + //WaitForm.SetWaitFormDescription(String.Format("{0}//{1}", i, aData.Rows.Count)); + } + } + command.CommandText = "COMMIT;"; //명시적 트렌젝션 시작 + command.ExecuteNonQuery(); + + //WaitForm.CloseWaitForm(); + } + } + catch (Exception) + { + //MessageBox.Show(e.ToString()); + } + finally + { + connection.Close(); + } + } + } + + #endregion + + } +} diff --git a/LFP_Manager/Function/csIniControlFunction.cs b/LFP_Manager/Function/csIniControlFunction.cs new file mode 100644 index 0000000..3214099 --- /dev/null +++ b/LFP_Manager/Function/csIniControlFunction.cs @@ -0,0 +1,199 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using System.Runtime.InteropServices; +using System.IO; + +using LFP_Manager.DataStructure; + +namespace LFP_Manager.Function +{ + class csIniControlFunction + { + #region [Function] INI File Read Function(Section Setting) + public static string[] GetIniValue(string Section, string path) + { + byte[] ba = new byte[5000]; + uint Flag = GetPrivateProfileSection(Section, ba, 5000, path); + return Encoding.Default.GetString(ba).Split(new char[1] { '\0' }, StringSplitOptions.RemoveEmptyEntries); + } + #endregion + + #region [Function] INI File Read Function(Section and Key Setting) + public static string GetIniValue(string Section, string key, string path) + { + StringBuilder sb = new StringBuilder(500); + int Flag = GetPrivateProfileString(Section, key, "", sb, 500, path); + return sb.ToString(); + } + #endregion + + #region [Function] INI File Read Function(Section, Key, Value, Address Setting) + public bool SetIniValue(string Section, string Key, string Value, string path) + { + return (WritePrivateProfileString(Section, Key, Value, path)); + } + #endregion + + #region [DLL Function] INI DLL Load + [DllImport("kernel32")] + public static extern int GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName); + [DllImport("kernel32")] + public static extern bool WritePrivateProfileString(string lpAppName, string lpKeyName, string lpString, string lpFileName); + [DllImport("kernel32")] + public static extern uint GetPrivateProfileInt(string lpAppName, string lpKeName, int nDefault, string lpFileName); + [DllImport("kernel32")] + public static extern uint GetPrivateProfileSection(string lpAppName, byte[] lpPairValues, uint nSize, string lpFileName); + [DllImport("kernel32")] + public static extern uint GetPrivateProfileSectionNames(byte[] lpSections, uint nSize, string lpFileName); + #endregion + + public static DateTime Delay(int MS) + { + DateTime thisMoment = DateTime.Now; + TimeSpan duration = new TimeSpan(0, 0, 0, 0, MS); + DateTime afterMoment = thisMoment.Add(duration); + + while (afterMoment >= thisMoment) + { + System.Windows.Forms.Application.DoEvents(); + + thisMoment = DateTime.Now; + } + + return DateTime.Now; + } + + public static void IniLoad(string AppPath, ref CommConfig rConfig) + { + string path; + + path = System.IO.Path.GetDirectoryName(AppPath); + + if (File.Exists(String.Format("{0}\\CommSet.ini", path))) + { + StringBuilder ret = new StringBuilder(); + string InIPath = String.Format("{0}\\CommSet.ini", path); + + // CommType = 0: RS-485, 1: SNMP + rConfig.CommType = (int)csIniControlFunction.GetPrivateProfileInt("COMM TYPE", "TYPE", 0, InIPath); + + // SNMP Config + // IP + ret.Clear(); + csIniControlFunction.GetPrivateProfileString("SNMP", "IP", "(NONE)", ret, 32, InIPath); + rConfig.SnmpIP = ret.ToString(); + // Model + rConfig.SnmpModelIndex = (int)csIniControlFunction.GetPrivateProfileInt("SNMP", "MODEL", 2, InIPath); + + // Serial Port Config + // PORT + ret.Clear(); + csIniControlFunction.GetPrivateProfileString("UART", "PORT", "(NONE)", ret, 32, InIPath); + rConfig.UartPort = ret.ToString(); + // MODEL + rConfig.UartModelIndex = (int)csIniControlFunction.GetPrivateProfileInt("UART", "MODEL", 0, InIPath); + + // Module Qunatity = 1 - 16 + rConfig.ModuleQty = (int)csIniControlFunction.GetPrivateProfileInt("UART", "MODULE_QTY", 1, InIPath); + + // PROTOCOL + rConfig.UartProtocol = (int)csIniControlFunction.GetPrivateProfileInt("UART", "PROTOCOL", 0, InIPath); + + // PROTOCOL + rConfig.RecvWaitTime = (int)csIniControlFunction.GetPrivateProfileInt("UART", "RECV_WAIT_TIME", 1500, InIPath); + + // Etc. Config + rConfig.DbLogPeriod = (int)csIniControlFunction.GetPrivateProfileInt("DATABASE", "LOG_PERIOD", 1, InIPath); + + // Gyro. Config + rConfig.GyroSensitive = (int)csIniControlFunction.GetPrivateProfileInt("GYRO", "SENSITIVITY", 120, InIPath); + + try + { + // ENABLE PASSWORD + ret.Clear(); + csIniControlFunction.GetPrivateProfileString("PW", "MASTER", CsCryptoHelper.Encrypt("8003"), ret, 32, InIPath); + rConfig.MasterPw = CsCryptoHelper.Decrypt(ret.ToString()); + // DISABLE PASSWORD + ret.Clear(); + csIniControlFunction.GetPrivateProfileString("PW", "ENGINEER", CsCryptoHelper.Encrypt("7003"), ret, 32, InIPath); + rConfig.EngineerPw = CsCryptoHelper.Decrypt(ret.ToString()); + // LEVEL PASSWORD + ret.Clear(); + csIniControlFunction.GetPrivateProfileString("PW", "TECHNICIAN", CsCryptoHelper.Encrypt("6003"), ret, 32, InIPath); + rConfig.TechnicianPw = CsCryptoHelper.Decrypt(ret.ToString()); + } + catch (Exception) + { + rConfig.MasterPw = "8003"; + rConfig.EngineerPw = "7003"; + rConfig.TechnicianPw = "6003"; + } + } + else + { + rConfig.CommType = 0; + + rConfig.SnmpIP = "192.168.0.200"; + rConfig.SnmpModelIndex = 0; + + rConfig.UartPort = ""; + rConfig.UartProtocol= 0; + rConfig.RecvWaitTime = 1500; + + rConfig.DbLogPeriod = 5; + + rConfig.GyroSensitive = 120; + + rConfig.MasterPw = "8003"; + rConfig.EngineerPw = "7003"; + rConfig.TechnicianPw = "6003"; + } + } + + public static void IniSave(string AppPath, CommConfig aConfig) + { + string path = Path.GetDirectoryName(AppPath); + string InIPath = String.Format("{0}\\CommSet.ini", path); + + // write ini + + // CommType = 0: SNMP, 1: RS-485 + WritePrivateProfileString("COMM TYPE", "TYPE", aConfig.CommType.ToString(), InIPath); + + // SNMP Config + // IP + WritePrivateProfileString("SNMP", "IP", aConfig.SnmpIP, InIPath); + // Model + WritePrivateProfileString("SNMP", "MODEL", aConfig.SnmpModelIndex.ToString(), InIPath); + + // Serial Port Config + // PORT + WritePrivateProfileString("UART", "PORT", aConfig.UartPort, InIPath); + // MODEL + WritePrivateProfileString("UART", "MODEL", aConfig.UartModelIndex.ToString(), InIPath); + // MODULE QTY = 1 - 16 + WritePrivateProfileString("UART", "MODULE_QTY", aConfig.ModuleQty.ToString(), InIPath); + // PROTOCOL + WritePrivateProfileString("UART", "PROTOCOL", aConfig.UartProtocol.ToString(), InIPath); + // RECV_WAIT_TIME + WritePrivateProfileString("UART", "RECV_WAIT_TIME", aConfig.RecvWaitTime.ToString(), InIPath); + + // Etc Config + WritePrivateProfileString("DATABASE", "LOG_PERIOD", aConfig.DbLogPeriod.ToString(), InIPath); + + // Gyro Config + WritePrivateProfileString("GYRO", "SENSITIVITY", aConfig.GyroSensitive.ToString(), InIPath); + + // MASTER PASSWORD + WritePrivateProfileString("PW", "MASTER", CsCryptoHelper.Encrypt(aConfig.MasterPw), InIPath); + // ENGINEER PASSWORD + WritePrivateProfileString("PW", "ENGINEER", CsCryptoHelper.Encrypt(aConfig.EngineerPw), InIPath); + // TECHNICIAN PASSWORD + WritePrivateProfileString("PW", "TECHNICIAN", CsCryptoHelper.Encrypt(aConfig.TechnicianPw), InIPath); + } + } +} diff --git a/LFP_Manager/Function/csMakeDataFunction.cs b/LFP_Manager/Function/csMakeDataFunction.cs new file mode 100644 index 0000000..0b4b304 --- /dev/null +++ b/LFP_Manager/Function/csMakeDataFunction.cs @@ -0,0 +1,308 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Runtime.Serialization.Formatters.Binary; +using System.IO; + +using LFP_Manager.DataStructure; +using LFP_Manager.Utils; + +namespace LFP_Manager.Function +{ + class csMakeDataFunction + { + private static DeviceSystemData MakeAlarmTripData(int id, short ndata, DeviceSystemData rSystemData) + { + bool[] aData = csUtils.Int16ToBitArray(ndata); + short bFault = rSystemData.StatusData.protection; + short bWarning = rSystemData.StatusData.warning; + int i = 0; + + switch (id) + { + case 0: // Warning + if (aData[i++]) bWarning |= (1 << 2); // Bit 0 : Over voltage warning + else bWarning &= ~(1 << 2); + if (aData[i++]) bWarning |= (1 << 4); // Bit 1 : Cell Over voltage warning + else bWarning &= ~(1 << 4); + if (aData[i++]) bWarning |= (1 << 3); // Bit 2 : Low voltage warning + else bWarning &= ~(1 << 3); + if (aData[i++]) bWarning |= (1 << 5); // Bit 3 : Low cell voltage warning + else bWarning &= ~(1 << 5); + if (aData[i++]) bWarning |= (1 << 6); // Bit 4 : Charge over current warning + else bWarning &= ~(1 << 6); + if (aData[i++]) bWarning |= (1 << 7); // Bit 5 : Discharge over current warning + else bWarning &= ~(1 << 7); + i++; // 06 Abnormal balancing current + i++; // 07 Reserved + if ((aData[8]) || (aData[9])) bWarning |= (1 << 0); // Bit 8 : Charge over temperature warning, Bit 9 : Discharge over temperature warning + else bWarning &= ~(1 << 0); + i++; // 08 + i++; // 09 + if ((aData[10]) || (aData[11])) bWarning |= (1 << 1); // Bit 10 : Charge low temperature warning, Bit 11 : Discharge low temperature warning + else bWarning &= ~(1 << 1); + i++; // 10 + i++; // 11 + if (aData[i++]) bWarning |= (1 << 11); // 12 : Low capacity warning + else bWarning &= ~(1 << 11); + i++; // 13 + if (aData[i++]) bWarning |= (1 << 9); // 14 Cell Voltage Difference Warning + else bWarning &= ~(1 << 9); + break; + case 1: // Status Code 2 + if (aData[i++]) bFault |= (1 << 2); // Bit 0 : Over voltage warning + else bFault &= ~(1 << 2); + if (aData[i++]) bFault |= (1 << 4); // Bit 1 : Cell Over voltage warning + else bFault &= ~(1 << 4); + if (aData[i++]) bFault |= (1 << 3); // Bit 2 : Low voltage warning + else bFault &= ~(1 << 3); + if (aData[i++]) bFault |= (1 << 5); // Bit 3 : Low cell voltage warning + else bFault &= ~(1 << 5); + if (aData[i++]) bFault |= (1 << 6); // Bit 4 : Charge over current warning + else bFault &= ~(1 << 6); + if (aData[i++]) bFault |= (1 << 7); // Bit 5 : Discharge over current warning + else bFault &= ~(1 << 7); + i++; // 06 Abnormal balancing current + i++; // 07 Reserved + if ((aData[8]) || (aData[9])) bFault |= (1 << 0); // Bit 8 : Charge over temperature warning, Bit 9 : Discharge over temperature warning + else bFault &= ~(1 << 0); + i++; // 08 + i++; // 09 + if ((aData[10]) || (aData[11])) bFault |= (1 << 1); // Bit 10 : Charge low temperature warning, Bit 11 : Discharge low temperature warning + else bFault &= ~(1 << 1); + i++; // 10 + i++; // 11 + i++; // 12 + i++; // 13 + if (aData[i++]) bFault |= (1 << 9); // 14 Cell Voltage Difference Warning + else bFault &= ~(1 << 9); + break; + } + + rSystemData.StatusData.protection = bFault; + rSystemData.StatusData.warning = bWarning; + + return rSystemData; + } + + public static void SetData(int index, double sdata, ref DeviceSystemData aSystemData) + { + switch (index) + { + case 0: aSystemData.ValueData.voltageOfPack = (short)(sdata / 100); break; // voltageOfPack + case 1: aSystemData.ValueData.current = (short)(sdata / 10); break; // current + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: aSystemData.ValueData.CellVoltage[index - 2] = (ushort)(sdata / 1); break; // CellVoltage14 + case 17: aSystemData.ValueData.CellTemperature[0] = (short)(sdata / 1); break; // CellTemperature0 + case 18: aSystemData.ValueData.CellTemperature[1] = (short)(sdata / 1); break; // CellTemperature1 + case 19: aSystemData.ValueData.CellTemperature[2] = (short)(sdata / 1); break; // CellTemperature2 + case 20: aSystemData.ValueData.CellTemperature[3] = (short)(sdata / 1); break; // CellTemperature3 + case 21: aSystemData.ValueData.rSOC = (short)(sdata / 1); break; // Relatvie State Of Charge + case 22: aSystemData.ValueData.remainingCapacity = (short)(sdata / 1); break; // Remaining Capacity + case 23: aSystemData.ValueData.stateOfHealth = (short)(sdata / 1); break; // stateOfHealth + case 24: aSystemData.ValueData.cycleCount = (short)(sdata / 1); break; // cycleCount + + case 25: aSystemData.AvgData.maxCellVoltage = (short)(sdata / 1); break; // maxCellVoltage + case 26: aSystemData.AvgData.minCellVoltage = (short)(sdata / 1); break; // minCellVoltage + case 27: aSystemData.AvgData.avgCellVoltage = (short)(sdata / 1); break; // avgCellVoltage + case 28: aSystemData.AvgData.diffCellVoltage = (short)(sdata / 1); break; // diffCellVoltage + case 29: aSystemData.StatusData.batteryStatus = (short)(sdata / 1); break; // batteryStatus + //case 37: aSystemData.StatusData.warning = (short)(sdata / 1); break; // warning + case 30: aSystemData = MakeAlarmTripData(0, (short)(sdata / 1), aSystemData); break; // warning + //case 38: aSystemData.StatusData.protection = (short)(sdata / 1); break; // OID-44 protection + case 31: aSystemData = MakeAlarmTripData(1, (short)(sdata / 1), aSystemData); break; // OID-44 protection + case 32: aSystemData.StatusData.status = (short)(sdata / 1); break; // status + case 33: aSystemData.StatusData.relayStatus = (short)(sdata / 1); break; // relayStatus + case 34: aSystemData.StatusData.cellBallanceStatus = (short)(sdata / 1); break; // cellBallanceStatus + case 35: aSystemData.StatusData.cellBalanceValue = (short)(sdata / 1); break; // cellBalanceValue + case 36: aSystemData.StatusData.cellBalanceFlag = (short)(sdata / 1); break; // cellBalanceFlag + case 37: aSystemData.AvgData.maxCellNum = (short)(sdata / 1); break; // maxCellNum + case 38: aSystemData.AvgData.minCellNum = (short)(sdata / 1); break; // minCellNum + //case 46: aSystemData.AvgData.maxTemp = (short)(sdata / 1); break; // maxTemp + //case 47: aSystemData.AvgData.minTemp = (short)(sdata / 1); break; // minTemp + //case 48: aSystemData.AvgData.maxTempNum = (short)(sdata / 1); break; // maxTempNum + //case 49: aSystemData.AvgData.minTempNum = (short)(sdata / 1); break; // minTempNum + } + } + + public static void SetSnmpData(int index, object sdata, ref DeviceSystemData aSystemData) + { + switch (index) + { + case 1: aSystemData.ValueData.voltageOfPack = (short)(Convert.ToDouble(sdata) / 10); break; // voltageOfPack - 0.01V + case 2: aSystemData.ValueData.current = (short)(Convert.ToDouble(sdata) - 10000); break; // current - 0.1A, Offset: 10000 + case 3: // Cell Voltage #1 + case 4: // Cell Voltage #2 + case 5: // Cell Voltage #3 + case 6: // Cell Voltage #4 + case 7: // Cell Voltage #5 + case 8: // Cell Voltage #6 + case 9: // Cell Voltage #7 + case 10: // Cell Voltage #8 + case 11: // Cell Voltage #9 + case 12: // Cell Voltage #10 + case 13: // Cell Voltage #11 + case 14: // Cell Voltage #12 + case 15: // Cell Voltage #13 + case 16: // Cell Voltage #14 + case 17: aSystemData.ValueData.CellVoltage[index - 3] = (ushort)(Convert.ToDouble(sdata) / 1); + csUtils.MakeMaxAvgMinCellVoltage(ref aSystemData, 15); + break; // Cell Voltage #16 + + case 19: aSystemData.ValueData.Ext1Temperature = (short)(Convert.ToDouble(sdata) * 10); break; // Temp of PCB - C + case 20: aSystemData.ValueData.Ext2Temperature = (short)(Convert.ToDouble(sdata) * 10); break; // Temp of Ambient - C + case 21: aSystemData.AvgData.maxTemp = (short)(Convert.ToDouble(sdata) * 10); break; // Max. Temp + + case 22: aSystemData.ValueData.remainingCapacity = (short)(Convert.ToDouble(sdata) * 1); break; // Remaining Capacity + + case 24: aSystemData.ValueData.stateOfHealth = (short)(Convert.ToDouble(sdata) / 10); break; // stateOfHealth + case 25: aSystemData.ValueData.rSOC = (short)(Convert.ToDouble(sdata) / 10); break; // Relatvie State Of Charge + + case 26: aSystemData.StatusData.status = (short)(Convert.ToDouble(sdata) / 1); break; // Status + case 27: aSystemData.StatusData.warning = MakeSnmpWarningData((short)Convert.ToDouble(sdata)); break; // warning + case 28: aSystemData.StatusData.protection = MakeSnmpTripData((short)Convert.ToDouble(sdata)); break; // Protection + case 29: // FaultAndStatus + aSystemData.StatusData.faultAndStatus = (short)(Convert.ToDouble(sdata) / 1); + //aSystemData.StatusData.status = (short)(((short)Convert.ToDouble(sdata) >> 8) & 0x0003); + MakeAlarm(ref aSystemData); + break; + case 30: aSystemData.ValueData.cycleCount = (short)(Convert.ToDouble(sdata) / 1); break; // cycleCount + + case 31: // Temperature #1 + case 32: // Temperature #2 + case 33: // Temperature #3 + case 34: // Temperature #4 + csUtils.MakeMaxAvgMinCellVoltage(ref aSystemData, 4); + break; + + case 37: aSystemData.cellQty = (short)(Convert.ToDouble(sdata) * 1); break; // Cell Number + case 38: aSystemData.ValueData.designedCapacity = (short)(Convert.ToDouble(sdata) * 1); break; // Cell Number + case 40: aSystemData.ValueData.MaxBattChargeCurr = (short)(Convert.ToDouble(sdata) * 1); break; // Max. Charge Current - A + case 41: aSystemData.ntcQty = (short)(Convert.ToDouble(sdata) * 1); break; // NTC Number + + case 42: aSystemData.BmsDateTime.year = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Year + case 43: aSystemData.BmsDateTime.month = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Month + case 44: aSystemData.BmsDateTime.day = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Day + case 45: aSystemData.BmsDateTime.hour = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Hour + case 46: aSystemData.BmsDateTime.minute = (short)(Convert.ToDouble(sdata) * 1); break; // BMS DateTime - Minute + case 47: aSystemData.BmsDateTime.second = (short)(Convert.ToDouble(sdata) * 1); // BMS DateTime - Second + aSystemData.BmsDateTime.DateTimeStr = string.Format("{0:0000}-{1:00}-{2:00} {3:00}:{4:00}:{5:00}" + , aSystemData.BmsDateTime.year + , aSystemData.BmsDateTime.month + , aSystemData.BmsDateTime.day + , aSystemData.BmsDateTime.hour + , aSystemData.BmsDateTime.minute + , aSystemData.BmsDateTime.second + ); + break; + + case 48: aSystemData.FloatVoltage = (int)Convert.ToDouble(sdata); break; // Float Voltage - 0.01V + case 49: aSystemData.BoostVoltage = (int)Convert.ToDouble(sdata); break; // Boost Voltage - 0.01V + + case 50: aSystemData.MinChargeTemp = (int)Convert.ToDouble(sdata); break; // Min. Charge Temp - C + case 51: aSystemData.MaxChargeTemp = (int)Convert.ToDouble(sdata); break; // Max. Charge Temp - C + + case 60: aSystemData.Information.ModelName = (string)sdata; break; // Model - string + case 61: aSystemData.Information.SwProductRev = (string)sdata; break; // BMS Fw Version - string + case 62: aSystemData.Information.HwSerialNumber = (string)sdata; break; // Pack Serial Number - string + case 63: aSystemData.Information.VendorName = (string)sdata; break; // Vendor Name - string + case 64: aSystemData.Information.ProductCode = (string)sdata; break; // Product Code - string + case 65: aSystemData.Information.MajorMinorRev = (string)sdata; break; // Major Minor Revision - string + case 66: aSystemData.Information.HwProductRev = (string)sdata; break; // Hardware Product Revision - string + case 67: aSystemData.Information.ManufacturingDate = (string)sdata; break; // Manufacturing Date - string + + default: + break; + } + } + public static void MakeAlarm(ref DeviceSystemData rSystemData) + { + if (((rSystemData.StatusData.faultAndStatus >> 14) & 0x0001) == 0x0001) + { + rSystemData.StatusData.batteryStatus = 4; // Anti-theft Gyroscope + } + else if (((rSystemData.StatusData.faultAndStatus >> 15) & 0x0001) == 0x0001) + { + rSystemData.StatusData.batteryStatus = 5; // Anti-theft Comm. + } + else if (rSystemData.StatusData.protection != 0x0000) + { + rSystemData.StatusData.batteryStatus = 2; + } + else if (rSystemData.StatusData.warning != 0x0000) + { + rSystemData.StatusData.batteryStatus = 1; + } + else + { + rSystemData.StatusData.batteryStatus = 0; + } + } + public static short MakeSnmpTripData(short rdata) + { + short result = 0; + bool[] bAlarm = csUtils.Int16ToBitArray(rdata); + + if (bAlarm[0] == true) result |= (short)(1 << 4); // 0x0001:Cell OV + if (bAlarm[1] == true) result |= (short)(1 << 2); // 0x0002:Pack OV + if (bAlarm[2] == true) result |= (short)(1 << 5); // 0x0004:Cell UV + if (bAlarm[3] == true) result |= (short)(1 << 3); // 0x0008:Pack UV + + if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC1 + if (bAlarm[5] == true) result |= (short)(1 << 6); // 0x0020:Charging OC2 + if (bAlarm[6] == true) result |= (short)(1 << 7); // 0x0010:Discharging OC1 + if (bAlarm[7] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC2 + + if (bAlarm[8] == true) result |= (short)(1 << 9); // 0x0200:Short Circuit Protection + + if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer + if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0080: Charging Under Tempratuer + if (bAlarm[11] == true) result |= (short)(1 << 0); // 0x0040: Discharging Over Tempratuer + if (bAlarm[12] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer + + return result; + } + public static short MakeSnmpWarningData(short rdata) + { + short result = 0; + bool[] bAlarm = csUtils.Int16ToBitArray(rdata); + + if (bAlarm[0] == true) result |= (short)(1 << 4); // 0x0001:Cell OV + if (bAlarm[1] == true) result |= (short)(1 << 5); // 0x0002:Cell UV + if (bAlarm[2] == true) result |= (short)(1 << 2); // 0x0004:Pack OV + if (bAlarm[3] == true) result |= (short)(1 << 3); // 0x0008:Pack UV + + if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC + if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC + + if (bAlarm[6] == true) result |= (short)(1 << 8); // 0x0040:ENV OT + if (bAlarm[7] == true) result |= (short)(1 << 9); // 0x0080:ENV UT + + if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0100: Charging Over Temprature + if (bAlarm[9] == true) result |= (short)(1 << 1); // 0x0200: Charging Under Temprature + if (bAlarm[10] == true) result |= (short)(1 << 0); // 0x0400: Discharging Over Temprature + if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0800: Discharging Under Temprature + + if (bAlarm[12] == true) result |= (short)(1 << 11); // 0x1000:SOC Low + + if (bAlarm[13] == true) result |= (short)(1 << 13); // 0x2000:Diff Volt + if (bAlarm[14] == true) result |= (short)(1 << 14); // 0x4000:CB Off + + return result; + } + } +} diff --git a/LFP_Manager/Function/csSerialCommFunction.cs b/LFP_Manager/Function/csSerialCommFunction.cs new file mode 100644 index 0000000..99a31f0 --- /dev/null +++ b/LFP_Manager/Function/csSerialCommFunction.cs @@ -0,0 +1,819 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using LFP_Manager.DataStructure; +using LFP_Manager.Utils; +using LFP_Manager.Controls; +using System.Web.Services.Description; +using System.Data.Entity.Core.Common.CommandTrees; +using DevExpress.XtraRichEdit.Fields.Expression; +using DevExpress.XtraRichEdit.Layout; +using DevExpress.XtraPrinting.Native.LayoutAdjustment; + +namespace LFP_Manager.Function +{ + class csSerialCommFunction + { + static readonly byte[] auchCRCHi = { + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, + 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, + 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, + 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, + 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, + 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, + 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, + 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, + 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, + 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, + 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, + 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, + 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40 + }; + + static readonly byte[] auchCRCLo = { + 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, + 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, + 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, + 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, + 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, + 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, + 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, + 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, + 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, + 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, + 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, + 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, + 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91, + 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, + 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, + 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, + 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,0x40 + }; + + public const byte READ_COIL_STATUS = 0x01; + public const byte READ_HOLDING_REG = 0x03; + public const byte READ_INPUT_REG = 0x04; //Byul 구문 추가 필요 + public const byte FORCE_SINGLE_COIL = 0x05; + public const byte PRESET_SINGLE_REG = 0x06; + public const byte PRESET_MULTI_REG = 0x10; + public const byte WRITE_COIL_REG = 0x0F; + public const byte ERROR_REG = 0x90; + + public const byte FW_FLASH_ERASE_CMD = 0x43; + public const byte FW_FLASH_WRITE_CMD = 0x31; + + public const byte NO_CMD = 0xFF; + + public static byte[] GetCRC(byte[] pby, int nSize) + { + ushort uIndex, i; + ushort crc; + byte uchCRCHi = 0xff; + byte uchCRCLo = 0xff; + byte[] result = new byte[2]; + + for (i = 0; i < nSize; i++) + { + uIndex = (ushort)((int)uchCRCLo ^ (int)pby[i]); + uchCRCLo = (byte)(uchCRCHi ^ auchCRCHi[uIndex]); + uchCRCHi = auchCRCLo[uIndex]; + } + crc = (ushort)((uchCRCHi << 8) | uchCRCLo); + + result[0] = (byte)(crc >> 8); + result[1] = (byte)(crc >> 0); + + return result; + } + + static public byte[] MakeReadRegisterData(ushort DevID, ushort cmd, ushort ReadAddr, ushort Size) + { + byte[] result = new byte[8]; + byte[] crc; + + result[0] = (byte)DevID; // Device ID + result[1] = (byte)cmd; // Command + result[2] = (byte)(ReadAddr >> 8); // Register Address MSB + result[3] = (byte)(ReadAddr >> 0); // Register Address LSB + result[4] = (byte)(Size >> 8); // Count of Register MSB + result[5] = (byte)(Size >> 0); // Count of Register LSB + + crc = GetCRC(result, 6); + + result[6] = crc[1]; // CRCH + result[7] = crc[0]; // CRCL + + return result; + } + + static public byte[] MakeWriteCoilData(ushort DevID, ushort WriteAddr, short WriteData) + { + byte[] result = new byte[7 + (1 * 1) + 2]; + byte[] crc; + ushort i = 0; + + result[i++] = (byte)DevID; // Device ID + result[i++] = (byte)WRITE_COIL_REG; // Command + result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB + result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB + result[i++] = (byte)(1 >> 8); // Count of Register MSB + result[i++] = (byte)(1 >> 0); // Count of Register LSB + result[i++] = (byte)(1 * 1); // Byte Count - [2 * (Num of register)] + + result[i++] = (byte)(WriteData >> 0); + + crc = GetCRC(result, i); + + result[i++] = crc[1]; // CRCH + result[i++] = crc[0]; // CRCL + + return result; + } + + static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, short[] WriteData) + { + byte[] result = new byte[9 + (WriteData.Length * 2)]; + byte[] crc; + ushort i = 0; + + result[i++] = (byte)DevID; // Device ID + result[i++] = (byte)PRESET_MULTI_REG; // Command + result[i++] = (byte)(WriteAddr >> 8); // Register Address MSB + result[i++] = (byte)(WriteAddr >> 0); // Register Address LSB + result[i++] = (byte)(WriteData.Length >> 8); // Count of Register MSB + result[i++] = (byte)(WriteData.Length >> 0); // Count of Register LSB + result[i++] = (byte)(WriteData.Length * 2); // Byte Count - [2 * (Num of register)] + + for (int j = 0; j < WriteData.Length; j++) + { + result[i++] = (byte)(WriteData[j] >> 8); + result[i++] = (byte)(WriteData[j] >> 0); + } + + crc = GetCRC(result, i); + + result[i++] = crc[1]; // CRCH + result[i++] = crc[0]; // CRCL + + return result; + } + + static short GetRegister(ushort reg_addr, ref DeviceParamData aParam) + { + short result = 0; + + switch (reg_addr) + { + //case 19: result = (short)(0 >> 16); break; // 0021 : UTC TimeStamp MSB + //case 20: result = (short)(58 >> 0); break; // 0022 : UTC TimeStamp LSB + //case 21: result = (short)0x1000; break; // 0023 : Cell Balancing Flag + //case 22: result = (short)0x0000; break; // 0024 : Cell Balancing Voltage + //case 23: result = (short)15; break; // 0024 : Cell Balancing Time + + case 0x4002: result = (short)aParam.CellUnderVoltageWarning; break; // 0061 : Low cell voltage warning data + //case 33: result = (short)param.sf1.voltage.CUV_Threshold; break; // 0062 : Low cell voltage protection data + //case 34: result = (short)param.sf1.voltage.CUV_Recovery; break; // 0063 : Low cell voltage recovery data + //case 35: result = (short)param.sf1.voltage.SUV_Warning; break; // 0064 : Low voltage warning data + //case 36: result = (short)param.sf1.voltage.SUV_Threshold; break; // 0065 : Low voltage protection data + //case 37: result = (short)param.sf1.voltage.SUV_Recovery; break; // 0066 : Low voltage recovery data + //case 38: result = (short)param.sf1.voltage.COV_Warning; break; // 0067 : Over cell voltage warning data + //case 39: result = (short)param.sf1.voltage.COV_Threshold; break; // 0068 : Over cell voltage protection data + //case 40: result = (short)param.sf1.voltage.COV_Recovery; break; // 0069 : Over cell voltage recovery data + //case 41: result = (short)param.sf1.voltage.SOV_Warning; break; // 0070 : Over voltage warning data + //case 42: result = (short)param.sf1.voltage.SOV_Threshold; break; // 0071 : Over voltage protection data + //case 43: result = (short)param.sf1.voltage.SOV_Recovery; break; // 0072 : Over voltage recovery data + + //case 44: result = (short)param.sf1.temperature.OT_Chg_Warning; break; // 0044 : Charge over temperature warning data + //case 45: result = (short)param.sf1.temperature.OT_Chg_Threshold; break; // 0045 : Charge over temperature protection data + //case 46: result = (short)param.sf1.temperature.OT_Chg_Recovery; break; // 0046 : Charge over temperature recovery data + //case 47: result = (short)param.sf1.temperature.OT_Chg_Time; break; // 0047 : Charge over temperature time + + //case 48: result = (short)param.sf1.temperature.OT_Dsg_Warning; break; // 0048 : Discharge over temperature warning data + //case 49: result = (short)param.sf1.temperature.OT_Dsg_Threshold; break; // 0049 : Discharge over temperature protection data + //case 50: result = (short)param.sf1.temperature.OT_Dsg_Recovery; break; // 0050 : Discharge over temperature recovery data + //case 51: result = (short)param.sf1.temperature.OT_Dsg_Time; break; // 0051 : Discharge over temperature time + } + + return result; + } + + static byte[] ModBusGetRegWordToBytes(ushort addr, ref DeviceParamData aParam) + { + short data; + byte[] result = new byte[2]; + + data = GetRegister(addr, ref aParam); + + result[0] = (byte)(data >> 8); + result[1] = (byte)(data >> 0); + + return result; + } + + static public byte[] MakeWriteRegisterData(ushort DevID, ushort WriteAddr, ushort reg_len, ref DeviceParamData aParam) + { + int tlen = (reg_len * 2) + 7 + 2; + byte[] result = new byte[tlen]; + byte[] tmp; + byte[] crc; + + result[0] = (byte)DevID; // Device ID + result[1] = (byte)PRESET_MULTI_REG; // Command + result[2] = (byte)(WriteAddr >> 8); // Register Address MSB + result[3] = (byte)(WriteAddr >> 0); // Register Address LSB + result[4] = (byte)(reg_len >> 8); // Count of Register MSB + result[5] = (byte)(reg_len >> 0); // Count of Register LSB + result[6] = (byte)(reg_len * 2); ; // Current Value MSB + + for (int i = 0; i < reg_len; i++) + { + tmp = ModBusGetRegWordToBytes((ushort)(WriteAddr + i),ref aParam); + result[7 + (i * 2) + 0] = tmp[0]; + result[7 + (i * 2) + 1] = tmp[1]; + } + crc = GetCRC(result, 8); + + result[tlen - 2] = crc[0]; // CRCH + result[tlen - 1] = crc[1]; // CRCL + + return result; + } + + public static byte[] MakeCheckSum(byte[] sData, int offset, int len, bool flag) + { + byte[] result = new byte[2]; + int checksum = 0; + + for (int i = 0; i < len; i++) + { + checksum += sData[i + offset]; + } + + checksum = ~checksum + 1; + + result[0] = (byte)(checksum >> 8); + result[1] = (byte)checksum; + + return result; + } + + private static byte[] MakeTxPacket(byte[] sData, int len) + { + string str = ""; + byte[] result; + char[] chrArray; + int checksum = 0; + string checksumStr = ""; + char[] checksumChr; + + str = "~"; + + for (int i = 0; i < len; i++) + { + str += sData[i].ToString("X2"); + } + + str += "\r"; + + chrArray = str.ToCharArray(); + + for (int i = 0; i < (chrArray.Length - 6); i++) + { + checksum += chrArray[i + 1]; + } + + checksum = ~checksum + 1; + + checksumStr = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum); + checksumChr = checksumStr.ToCharArray(); + + for (int i = 0; i < 4; i++) + { + chrArray[chrArray.Length - 5 + i] = checksumChr[i]; + } + + result = new byte[chrArray.Length]; + + for (int i = 0; i < chrArray.Length; i++) + { + result[i] = (byte)chrArray[i]; + } + + return result; + } + + public static byte[] LengthLchk(int sLen) + { + byte[] result = new byte[2]; + int lchksum = 0; + + lchksum = (~(((sLen >> 8) & 0xF) + + ((sLen >> 4) & 0xF) + + ((sLen >> 0) & 0xF)) + 1) % 16; + lchksum = ((lchksum << 12) | sLen); + + result[0] = (byte)(lchksum >> 8); + result[1] = (byte)(lchksum >> 0); + + return result; + } + + public static byte[] MakeTxData(byte addr, byte cmd, int sLen) + { + int buffCh = 0; + byte[] sData; + byte[] lenId; + byte[] checksum; + + sData = new byte[((sLen > 0) ? 11 : 10)]; + + sData[buffCh] = 0x7E; buffCh++; // SOI + sData[buffCh] = 0x25; buffCh++; // VER + sData[buffCh] = addr; buffCh++; // ADDR + sData[buffCh] = 0x46; buffCh++; // CID1 + sData[buffCh] = cmd; buffCh++; // CID2 (CMD) + + lenId = LengthLchk(sLen); // LENID + sData[buffCh] = lenId[0]; buffCh++; // LENID MSB + sData[buffCh] = lenId[1]; buffCh++; // LENID LSB + + if (sLen > 0) + { + sData[buffCh] = (byte)(sLen / 2); buffCh++; // INFO + } + + checksum = csSerialCommFunction.MakeCheckSum(sData, 1, sData.Length - 4, false); + + sData[buffCh] = checksum[1]; buffCh++; + sData[buffCh] = checksum[0]; buffCh++; + + sData[buffCh] = 0x0D; buffCh++; // EOI + + return MakeTxPacket(sData, sData.Length); + } + + public static int TbPacketCheck(byte[] rdata, int rlen) + { + int result = 0; + byte[] cdata; + byte[] checksum; + byte[] checksum1; + + checksum = MakeCheckSum(rdata, 1, rlen - 6, false); + + checksum1 = new byte[2]; + checksum1[0] = csUtils.StrByte2toByte(rdata[rlen - 4], rdata[rlen - 5]); + checksum1[1] = csUtils.StrByte2toByte(rdata[rlen - 2], rdata[rlen - 3]); + + + if ((checksum[0] == checksum1[0]) && (checksum[1] == checksum1[1])) + { + cdata = csUtils.StrToByteArray(rdata, 0, rlen); + + result = 1; + } + + return result; + } + + static public int ModbusPacketFromSlaveCheck(byte[] rdata, ushort rlen) + { + int result = 0; + byte[] cdata, crc; + ushort clen, bytecount; + + if (rlen > 2) + { + cdata = rdata; + + switch (cdata[1]) + { + case READ_COIL_STATUS: + case READ_HOLDING_REG: + case READ_INPUT_REG: + bytecount = cdata[2]; + clen = (ushort)(bytecount + 5); // header 3, tail 2 + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[1] == cdata[rlen - 2]) && (crc[0] == cdata[rlen - 1])) result = 1; + else result = -1; + } + break; + case PRESET_MULTI_REG: + case FORCE_SINGLE_COIL: + case PRESET_SINGLE_REG: + clen = 8; + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1; + else result = -1; + } + break; + case ERROR_REG: + clen = 6; + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 1; + else result = -1; + } + break; + case FW_FLASH_ERASE_CMD: + clen = 5; + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2; + else result = -1; + } + break; + case FW_FLASH_WRITE_CMD: + clen = 5; + if (rlen >= clen) + { + crc = GetCRC(cdata, (ushort)(rlen - 2)); + if ((crc[0] == cdata[rlen - 1]) && (crc[1] == cdata[rlen - 2])) result = 2; + else result = -1; + } + break; + + default: + result = -1; + break; + } + } + return result; + } + + public static short[] SerialRxProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + short[] result = new short[2]; + + switch (rData[1]) + { + case READ_COIL_STATUS: + ReadCoilRegisterProcess(rData, rRegAddr, rLen, ref rSystemData); + break; + case READ_HOLDING_REG: + ReadHoldRegisterProcess(rData, rRegAddr, rLen, ref rSystemData); + break; + case READ_INPUT_REG: + //ReadInputRegisterProcess(rData, rRegAddr, rLen, ref rSystemData); + break; + //case READ_INPUT_REG: + // ReadRegister(rData, rRegAddr, rLen, ref rSystemData); + // break; + case PRESET_MULTI_REG: + // read_holding_reg_process(reverse16(rsp->start_addr, true), reverse16(rsp->qty_reg, true)); + //result[0] = 1; + //result[1] = 1; + break; + case ERROR_REG: + result[0] = 2; + result[1] = (short)((rData[0] << 8) | rData[1]); + break; + } + + return result; + } + + private static void ReadCoilRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + int i, j; + short reg_count; + short reg_value; + i = 2; + reg_count = rData[i]; + + i++; + for (j = 0; j < reg_count; j++) + { + reg_value = (short)(rData[i + j]); + SetCoilRegister((short)(rRegAddr + j), reg_value, ref rSystemData); + i++; + } + } + + private static void ReadHoldRegisterProcess(byte[] rData, ushort rRegAddr, ushort rLen, ref DeviceSystemData rSystemData) + { + int i, j; + short reg_count; + short reg_value; + i = 2; + reg_count = (short)(rData[i] / 2); i += 1; + + for (j = 0; j < reg_count; j++) + { + reg_value = (short)(rData[i] << 8 | rData[i + 1]); + SetHoldRegister((short)(rRegAddr + j), reg_value, ref rSystemData); + i += 2; + } + } + + private static void SetCoilRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData) + { + switch (reg_addr) + { + case 0x3078: + rSystemData.StatusData.relayStatus = reg_value; + rSystemData.CalibrationData.FetCalib.FetStatus = reg_value; + break; + case 0x502E: + rSystemData.CalibrationData.Current.ChargeOption = reg_value; + break; + } + } + + private static void SetHoldRegister(short reg_addr, short reg_value, ref DeviceSystemData rSystemData) + { + int temp = 0; + switch (reg_addr) + { + case 0: rSystemData.ValueData.voltageOfPack = (short)(reg_value / 10); break; //Total Voltage + case 1: rSystemData.ValueData.current = (short)((reg_value) / 10); break; //Total Current + case 2: // Cell Voltage #1 + case 3: // Cell Voltage #2 + case 4: // Cell Voltage #3 + case 5: // Cell Voltage #4 + case 6: // Cell Voltage #5 + case 7: // Cell Voltage #6 + case 8: // Cell Voltage #7 + case 9: // Cell Voltage #8' + case 10: // Cell Voltage #9 + case 11: // Cell Voltage #10 + case 12: // Cell Voltage #11 + case 13: // Cell Voltage #12 + case 14: // Cell Voltage #13 + case 15: // Cell Voltage #14 + case 16: // Cell Voltage #15 + rSystemData.ValueData.CellVoltage[reg_addr - 2] = (ushort)(reg_value / 1); + csUtils.MakeMaxAvgMinCellVoltage(ref rSystemData, 15); + break; // 15 CellVoltage 1mV + case 17: break; // Cell Voltage #16 - Reserved + case 18: rSystemData.ValueData.Ext1Temperature = (short)((reg_value) * 10); break; //Ext1 Temperature (Temp of MOS-FET) + case 19: rSystemData.ValueData.Ext2Temperature = (short)((reg_value) * 10); break; //Ext2 Amb. PCB Temperature 1C + case 20: break; // Temp Max. + case 21: rSystemData.ValueData.remainingCapacity = (short)(reg_value / 1); break; // Remaining Capacity + case 22: rSystemData.ValueData.MaxBattChargeCurr = reg_value / 1; break; + case 23: rSystemData.ValueData.stateOfHealth = (short)(reg_value * 10); break; + case 24: rSystemData.ValueData.rSOC = (short)(reg_value * 10); break; //SOC + case 25: rSystemData.StatusData.status = reg_value; break; //Operating Status + case 26: rSystemData.StatusData.warning = MakeUartWarningData(reg_value); break; //Warning Status + case 27: rSystemData.StatusData.protection = MakeUartTripData(reg_value); break; //Protection Status + case 28: // Error Code + // 0x0001:Voltage error + // 0x0002:Temperature error + // 0x0004: Current Check Error + // 0x0010:Cell unbalance + break; + case 29: // Cycle count MSB + temp = rSystemData.ValueData.cycleCount; + rSystemData.ValueData.cycleCount = (temp & (0x0000FFFF)) | (reg_value << 16); + break; + case 30: // Cycle count LSB + temp = rSystemData.ValueData.cycleCount; + rSystemData.ValueData.cycleCount = (int)(temp & (0xFFFF0000)) | (reg_value << 0); + break; + case 31: // fullChargeCapacity MSB + temp = rSystemData.ValueData.fullChargeCapacity; + rSystemData.ValueData.fullChargeCapacity = (temp & (0x0000FFFF)) | (reg_value << 16); + break; + case 32: // fullChargeCapacity LSB + temp = rSystemData.ValueData.fullChargeCapacity; + rSystemData.ValueData.fullChargeCapacity = (int)(temp & (0xFFFF0000)) | (reg_value << 0); + break; + case 33: + case 34: + rSystemData.ValueData.CellTemperature[((reg_addr - 33) * 2) + 0] = (short)(((reg_value >> 8) & 0xFF) * 10); + rSystemData.ValueData.CellTemperature[((reg_addr - 33) * 2) + 1] = (short)(((reg_value >> 0) & 0xFF) * 10); + csUtils.MakeMaxAvgMinTemperature(ref rSystemData, 4); + break; + case 35: break; // Reserved + case 36: rSystemData.cellQty = reg_value; break; // Cell Qty + case 37: rSystemData.ValueData.designedCapacity = reg_value; break; + case 38: rSystemData.StatusData.cellBallanceStatus = reg_value; break; + + case 39: rSystemData.StatusData.specialAlarm = (short)(reg_value); break; // Special Alarm + + //case 61: rSystemData.StatusData.cellBallanceStatus = reg_value; break; + //45 ~ 99 : Reserved + case 45: rSystemData.BmsDateTimeShort1 = (ushort)reg_value; break; // DateTime + case 46: rSystemData.BmsDateTimeShort2 = (ushort)reg_value; + int yy, MM, dd, HH, mm, ss; + rSystemData.BmsDateTimeInt = (rSystemData.BmsDateTimeShort1 << 16) | (rSystemData.BmsDateTimeShort2); + yy = (rSystemData.BmsDateTimeInt >> 26) & 0x003F; + MM = ((rSystemData.BmsDateTimeInt >> 22) & 0x000F) % 13; + dd = ((rSystemData.BmsDateTimeInt >> 17) & 0x001F) % 32; + HH = ((rSystemData.BmsDateTimeInt >> 12) & 0x001F) % 24; + mm = ((rSystemData.BmsDateTimeInt >> 6) & 0x003F) % 60; + ss = ((rSystemData.BmsDateTimeInt >> 0) & 0x003F) % 60; + yy += 2000; + + rSystemData.BmsDateTime.DateTimeStr = string.Format("{0:0000}-{1:00}-{2:00} {3:00}:{4:00}:{5:00}" + , yy + , MM + , dd + , HH + , mm + , ss + ); + break; // DateTime + + case 47: rSystemData.CalibrationData.ChaMode.Mode = reg_value; break; // 0x2F + case 48: rSystemData.CalibrationData.ChaMode.Value = reg_value; break; // 0x2F + + case 56: rSystemData.CalibrationData.BalCalib.Volt = reg_value; break; // Cell Balance Voltage + case 57: rSystemData.CalibrationData.BalCalib.Diff = reg_value; break; // Cell Balance Diff + + case 58: rSystemData.ParamData.LowSocWarning = reg_value; break; + + case 61: rSystemData.ParamData.CellUnderVoltageWarning = reg_value; break; + case 62: rSystemData.ParamData.CellUnderVoltageTrip = reg_value; break; + case 63: rSystemData.ParamData.CellUnderVoltageRelease = reg_value; break; + case 64: rSystemData.ParamData.SysUnderVoltageWarning = (short)(reg_value / 10); break; + case 65: rSystemData.ParamData.SysUnderVoltageTrip = (short)(reg_value / 10); break; + case 66: rSystemData.ParamData.SysUnderVoltageRelease = (short)(reg_value / 10); break; + case 67: rSystemData.ParamData.CellOverVoltageWarning = reg_value; break; + case 68: rSystemData.ParamData.CellOverVoltageTrip = reg_value; break; + case 69: rSystemData.ParamData.CellOverVoltageRelease = reg_value; break; + case 70: rSystemData.ParamData.SysOverVoltageWarning = (short)(reg_value / 10); break; + case 71: rSystemData.ParamData.SysOverVoltageTrip = (short)(reg_value / 10); break; + case 72: rSystemData.ParamData.SysOverVoltageRelease = (short)(reg_value / 10); break; + + case 76: rSystemData.ParamData.ChaOverCurrentTimes = (short)(reg_value / 1); break; + case 77: rSystemData.ParamData.DchOverCurrentTimes = (short)(reg_value / 1); break; + case 78: rSystemData.ParamData.ChaOverCurrentReleaseTime = (short)(reg_value * 1); break; + case 79: rSystemData.ParamData.DchOverCurrentReleaseTime = (short)(reg_value * 1); break; + case 80: rSystemData.ParamData.ChaOverCurrentTrip1 = (short)(reg_value / 10); break; + case 81: rSystemData.ParamData.DchOverCurrentTrip1 = (short)(reg_value / 10); break; + case 82: rSystemData.ParamData.ShortCircuit = (short)(reg_value / 10); break; // Short Circuit Current = 300A + case 83: rSystemData.ParamData.ChaOverCurrentTrip2 = (short)(reg_value / 10); break; + case 84: rSystemData.ParamData.DchOverCurrentTrip2 = (short)(reg_value / 10); break; + case 85: rSystemData.ParamData.ChaOverCurrentDelay1 = (short)(reg_value / 1); break; + case 86: rSystemData.ParamData.ChaOverCurrentDelay2 = (short)(reg_value / 1); break; + case 87: rSystemData.ParamData.DchOverCurrentDelay1 = (short)(reg_value / 1); break; + case 88: rSystemData.ParamData.DchOverCurrentDelay2 = (short)(reg_value / 1); break; + + case 90: rSystemData.ParamData.ChaLowTempWarning = (short)(reg_value - 50); break; + case 91: rSystemData.ParamData.ChaLowTempTrip = (short)(reg_value - 50); break; + case 92: rSystemData.ParamData.ChaLowTempRelease = (short)(reg_value - 50); break; + case 93: rSystemData.ParamData.ChaHighTempWarning = (short)(reg_value - 50); break; + case 94: rSystemData.ParamData.ChaHighTempTrip = (short)(reg_value - 50); break; + case 95: rSystemData.ParamData.ChaHighTempRelease = (short)(reg_value - 50); break; + case 96: rSystemData.ParamData.DchLowTempWarning = (short)(reg_value - 50); break; + case 97: rSystemData.ParamData.DchLowTempTrip = (short)(reg_value - 50); break; + case 98: rSystemData.ParamData.DchLowTempRelease = (short)(reg_value - 50); break; + case 99: rSystemData.ParamData.DchHighTempWarning = (short)(reg_value - 50); break; + case 100: rSystemData.ParamData.DchHighTempTrip = (short)(reg_value - 50); break; + case 101: rSystemData.ParamData.DchHighTempRelease = (short)(reg_value - 50); break; + + case 102: break; // PCB High Temp Warning + case 103: break; // PCB High Temp Trip + case 104: break; // PCB High Temp Release + //100 ~111 : Model_Product Name + case 105: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + int mReg = reg_addr - 105; + rSystemData.Information.Model_Byte[(mReg * 2) + 0] = (byte)(reg_value >> 8); + rSystemData.Information.Model_Byte[(mReg * 2) + 1] = (byte)(reg_value >> 0); + if (reg_addr == 116) + { + rSystemData.Information.ModelName = Encoding.Default.GetString(rSystemData.Information.Model_Byte).Trim('\0'); + } + break; + + //112 ~114 : FW Version + case 117: + case 118: + case 119: + int fReg = reg_addr - 117; + rSystemData.Information.FwVer_Byte[(fReg * 2) + 0] = (byte)(reg_value >> 8); + rSystemData.Information.FwVer_Byte[(fReg * 2) + 1] = (byte)(reg_value >> 0); + if (reg_addr == 119) + { + rSystemData.Information.SwProductRev = Encoding.Default.GetString(rSystemData.Information.FwVer_Byte).Trim('\0'); + } + break; + //115 ~ 122 : BMS Serial number + case 120: + case 121: + case 122: + case 123: + case 124: + case 125: + case 126: + case 127: + int snReg = reg_addr - 120; + rSystemData.Information.BMS_SN[(snReg * 2) + 0] = (byte)(reg_value >> 8); + rSystemData.Information.BMS_SN[(snReg * 2) + 1] = (byte)(reg_value >> 0); + if (reg_addr == 127) + { + rSystemData.Information.HwSerialNumber = Encoding.Default.GetString(rSystemData.Information.BMS_SN).Trim('\0'); + } + break; + + case 130: rSystemData.ParamData.EnvLowTempWarning = (short)(reg_value - 50); break; + case 131: rSystemData.ParamData.EnvLowTempTrip = (short)(reg_value - 50); break; + case 132: rSystemData.ParamData.EnvLowTempRelease = (short)(reg_value - 50); break; + case 133: rSystemData.ParamData.EnvHighTempWarning = (short)(reg_value - 50); break; + case 134: rSystemData.ParamData.EnvHighTempTrip = (short)(reg_value - 50); break; + case 135: rSystemData.ParamData.EnvHighTempRelease = (short)(reg_value - 50); break; + + case 136: // Anti-Theft Communication + rSystemData.CalibrationData.AntiTheft.Comm = reg_value; + break; + case 137: // Anti-Theft Gyro-Scope + rSystemData.CalibrationData.AntiTheft.GyroScope = reg_value; + break; + case 163: // 0xA3 + case 164: // 0xA4 + case 165: // 0xA5 + case 166: // 0xA6 + int ManuDateReg = reg_addr - 163; + rSystemData.Information.ManuDate_Byte[(ManuDateReg * 2) + 0] = (byte)(reg_value >> 8); + rSystemData.Information.ManuDate_Byte[(ManuDateReg * 2) + 1] = (byte)(reg_value >> 0); + if (reg_addr == 166) + { + rSystemData.Information.ManufacturingDate = Encoding.Default.GetString(rSystemData.Information.ManuDate_Byte).Trim('\0'); + } + break; + } + csMakeDataFunction.MakeAlarm(ref rSystemData); + } + + public static short MakeUartWarningData(short rdata) + { + short result = 0; + bool[] bAlarm = csUtils.Int16ToBitArray(rdata); + + if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV + if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV + if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV + if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV + + if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC + if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC + + if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer + if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Tempratuer + if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Tempratuer + if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer + if (bAlarm[12] == true) result |= (short)(1 << 11); // 0x0200:SOC Low + + return result; + } + + public static short MakeUartTripData(short rdata) + { + short result = 0; + bool[] bAlarm = csUtils.Int16ToBitArray(rdata); + + if (bAlarm[0] == true) result |= (short)(1 << 2); // 0x0001:Pack OV + if (bAlarm[1] == true) result |= (short)(1 << 4); // 0x0002:Cell OV + if (bAlarm[2] == true) result |= (short)(1 << 3); // 0x0004:Pack UV + if (bAlarm[3] == true) result |= (short)(1 << 5); // 0x0008:Cell UV + + if (bAlarm[4] == true) result |= (short)(1 << 6); // 0x0010:Charging OC + if (bAlarm[5] == true) result |= (short)(1 << 7); // 0x0020:Discharging OC + + if (bAlarm[8] == true) result |= (short)(1 << 0); // 0x0080: Charging Over Tempratuer + if (bAlarm[9] == true) result |= (short)(1 << 0); // 0x0080: Discharging Over Tempratuer + if (bAlarm[10] == true) result |= (short)(1 << 1); // 0x0040: Charging Under Tempratuer + if (bAlarm[11] == true) result |= (short)(1 << 1); // 0x0040: Discharging Under Tempratuer + if (bAlarm[13] == true) result |= (short)(1 << 9); // 0x0200:Short Circuit Protection + + return result; + } + + private static short MakeUartErrorData(short rdata, short cdata) + { + short result = cdata; + bool[] bAlarm = csUtils.Int16ToBitArray(rdata); + + if (bAlarm[0] == true) result |= (short)(1 << 9); // 0x0001:Voltage error + if (bAlarm[1] == true) result |= (short)(1 << 9); // 0x0002:Temperature error + if (bAlarm[2] == true) result |= (short)(1 << 9); // 0x0004: 电流检测Error + if (bAlarm[3] == true) result |= (short)(1 << 9); // 0x0010:Cell unbalance + + return result; + } + } +} diff --git a/LFP_Manager/LFP_Manager.zip b/LFP_Manager/LFP_Manager.zip new file mode 100644 index 0000000..f2f4fc4 Binary files /dev/null and b/LFP_Manager/LFP_Manager.zip differ diff --git a/LFP_Manager/LFP_Manager_DBG_Delta.csproj b/LFP_Manager/LFP_Manager_DBG_Delta.csproj new file mode 100644 index 0000000..e89d5a0 --- /dev/null +++ b/LFP_Manager/LFP_Manager_DBG_Delta.csproj @@ -0,0 +1,640 @@ + + + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4} + WinExe + Properties + LFP_Manager + LFP_Manager_DBG_Delta + v4.8 + 512 + + + 3.5 + + + + + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + x86 + false + + + pdbonly + false + bin\Release\ + DEBUG;TRACE + prompt + 4 + true + x86 + false + + + AMO_LOGO.ico + + + + + True + + + True + + + True + + + + + True + + + True + + + True + + + True + + + True + + + True + + + + + True + + + + True + + + True + + + True + + + True + + + True + + + + True + + + True + + + + True + + + + True + + + + + + ..\packages\EntityFramework.6.5.1\lib\net45\EntityFramework.dll + + + ..\packages\EntityFramework.6.5.1\lib\net45\EntityFramework.SqlServer.dll + + + dll\IPAddressControlLib.dll + + + dll\log4net.dll + + + ..\packages\Microsoft.Bcl.AsyncInterfaces.9.0.5\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\packages\Microsoft.Extensions.Configuration.9.0.5\lib\net462\Microsoft.Extensions.Configuration.dll + + + ..\packages\Microsoft.Extensions.Configuration.Abstractions.9.0.5\lib\net462\Microsoft.Extensions.Configuration.Abstractions.dll + + + ..\packages\Microsoft.Extensions.Configuration.Binder.9.0.5\lib\net462\Microsoft.Extensions.Configuration.Binder.dll + + + ..\packages\Microsoft.Extensions.DependencyInjection.9.0.5\lib\net462\Microsoft.Extensions.DependencyInjection.dll + + + ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.9.0.5\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\packages\Microsoft.Extensions.Logging.9.0.5\lib\net462\Microsoft.Extensions.Logging.dll + + + ..\packages\Microsoft.Extensions.Logging.Abstractions.9.0.5\lib\net462\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\packages\Microsoft.Extensions.Logging.Configuration.9.0.5\lib\net462\Microsoft.Extensions.Logging.Configuration.dll + + + ..\packages\Microsoft.Extensions.Logging.Console.9.0.5\lib\net462\Microsoft.Extensions.Logging.Console.dll + + + ..\packages\Microsoft.Extensions.Logging.Debug.9.0.5\lib\net462\Microsoft.Extensions.Logging.Debug.dll + + + ..\packages\Microsoft.Extensions.Options.9.0.5\lib\net462\Microsoft.Extensions.Options.dll + + + ..\packages\Microsoft.Extensions.Options.ConfigurationExtensions.9.0.5\lib\net462\Microsoft.Extensions.Options.ConfigurationExtensions.dll + + + ..\packages\Microsoft.Extensions.Primitives.9.0.5\lib\net462\Microsoft.Extensions.Primitives.dll + + + False + dll\SnmpSharpNet.dll + + + + ..\packages\System.Buffers.4.6.1\lib\net462\System.Buffers.dll + + + + + 3.5 + + + + ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\lib\net46\System.Data.SQLite.dll + + + ..\packages\System.Data.SQLite.EF6.1.0.119.0\lib\net46\System.Data.SQLite.EF6.dll + + + ..\packages\System.Data.SQLite.Linq.1.0.119.0\lib\net46\System.Data.SQLite.Linq.dll + + + ..\packages\System.Diagnostics.DiagnosticSource.9.0.5\lib\net462\System.Diagnostics.DiagnosticSource.dll + + + ..\packages\System.IO.Pipelines.9.0.5\lib\net462\System.IO.Pipelines.dll + + + ..\packages\System.Memory.4.6.3\lib\net462\System.Memory.dll + + + + ..\packages\System.Numerics.Vectors.4.6.1\lib\net462\System.Numerics.Vectors.dll + + + + ..\packages\System.Runtime.CompilerServices.Unsafe.6.1.2\lib\net462\System.Runtime.CompilerServices.Unsafe.dll + + + + + + + ..\packages\System.Text.Encodings.Web.9.0.5\lib\net462\System.Text.Encodings.Web.dll + + + ..\packages\System.Text.Json.9.0.5\lib\net462\System.Text.Json.dll + + + ..\packages\System.Threading.Tasks.Extensions.4.6.3\lib\net462\System.Threading.Tasks.Extensions.dll + + + + + 3.5 + + + 3.5 + + + + + + + + dll\Tftp.Net.dll + + + + + UserControl + + + UcAntiTheftControl.cs + + + UserControl + + + ucCalibration.cs + + + UserControl + + + ucCalibrationView.cs + + + UserControl + + + ucCommConfig.cs + + + UserControl + + + ucDataLog.cs + + + UserControl + + + ucEventLog.cs + + + UserControl + + + ucHistroy.cs + + + UserControl + + + ucMainStatus.cs + + + UserControl + + + ucModuleMainB.cs + + + UserControl + + + ucModuleMainHeader.cs + + + UserControl + + + ucParamSet.cs + + + UserControl + + + ucShelfStatus.cs + + + UserControl + + + ucStatus.cs + + + UserControl + + + ucTargetControl.cs + + + UserControl + + + ucTftpClientcs.cs + + + UserControl + + + ucModuleMainA.cs + + + + + + + Form + + + fmxAntiTheft.cs + + + Form + + + FmxChangePw.cs + + + Form + + + fmxExcelFile.cs + + + Form + + + fmxCalibration.cs + + + Form + + + fmxFwUpdate.cs + + + Form + + + fmxHistory.cs + + + Form + + + FmxInformation.cs + + + Form + + + fmxInventoryConfig.cs + + + Form + + + FmxLevelConfig.cs + + + Form + + + fmxModuleDetail.cs + + + Form + + + fmxParamConfig.cs + + + Form + + + FmxPassword.cs + + + Form + + + FmxPasswordChange.cs + + + Form + + + fmxWait.cs + + + + + + + + + + + + True + True + Resources.resx + + + + + + + Form + + + fmxCommConfig.cs + + + Form + + + fmxMain.cs + + + + + + + + + + + + + + + + + + + + UcAntiTheftControl.cs + + + ucCalibration.cs + + + ucCalibrationView.cs + + + ucCommConfig.cs + + + ucDataLog.cs + + + ucEventLog.cs + + + ucHistroy.cs + + + ucMainStatus.cs + + + ucModuleMainA.cs + + + ucModuleMainB.cs + + + ucModuleMainHeader.cs + + + ucParamSet.cs + + + ucShelfStatus.cs + + + ucStatus.cs + + + ucTargetControl.cs + + + ucTftpClientcs.cs + + + fmxAntiTheft.cs + + + FmxChangePw.cs + + + fmxExcelFile.cs + + + fmxCalibration.cs + + + fmxCommConfig.cs + + + fmxFwUpdate.cs + + + fmxHistory.cs + + + FmxInformation.cs + + + fmxInventoryConfig.cs + + + FmxLevelConfig.cs + + + fmxMain.cs + + + fmxModuleDetail.cs + + + fmxParamConfig.cs + + + FmxPassword.cs + + + FmxPasswordChange.cs + + + fmxWait.cs + + + + ResXFileCodeGenerator + Designer + Resources.Designer.cs + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + + + + + + if not exist "$(TargetDir)\Library" mkdir "$(TargetDir)\Library" +if not exist "$(TargetDir)\Library\kerneldlls" mkdir "$(TargetDir)\Library\kerneldlls" +move "$(TargetDir)\*.dll" "$(TargetDir)\Library" +move "$(TargetDir)\*.pdb" "$(TargetDir)\Library" +move "$(TargetDir)\*.xml" "$(TargetDir)\Library" +copy "$(ProjectDir)\dll\*.dll" "$(TargetDir)\Library" +copy "$(ProjectDir)\dll\kerneldlls\*.*" "$(TargetDir)\Library\kerneldlls" + +if not exist "$(TargetDir)\sql" mkdir "$(TargetDir)\sql" +copy "$(ProjectDir)\DB Schema\*.sql" "$(TargetDir)\sql" + + + if exist "$(TargetDir)\library" rmdir /s /q "$(TargetDir)\library" +if exist "$(TargetDir)\sql" rmdir /s /q "$(TargetDir)\sql" + + + + 이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다. + + + + + + + + + + + + \ No newline at end of file diff --git a/LFP_Manager/LFP_Manager_GL.csproj b/LFP_Manager/LFP_Manager_GL.csproj new file mode 100644 index 0000000..00d107c --- /dev/null +++ b/LFP_Manager/LFP_Manager_GL.csproj @@ -0,0 +1,530 @@ + + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4} + WinExe + Properties + LFP_Manager + LFP_Manager_GL + v4.5.2 + 512 + + + 3.5 + + + + + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + x86 + false + + + pdbonly + false + bin\Release\ + DEBUG;TRACE + prompt + 4 + true + x86 + false + + + Resources\AMO_LOGO.ico + + + + + True + + + True + + + True + + + + + True + + + True + + + True + + + True + + + True + + + True + + + + + True + + + + True + + + True + + + True + + + True + + + True + + + + True + + + True + + + + True + + + + True + + + + + + ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + dll\IPAddressControlLib.dll + + + dll\log4net.dll + + + False + dll\SnmpSharpNet.dll + + + + + + 3.5 + + + + ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net451\System.Data.SQLite.dll + + + ..\packages\System.Data.SQLite.EF6.1.0.113.0\lib\net451\System.Data.SQLite.EF6.dll + + + ..\packages\System.Data.SQLite.Linq.1.0.113.0\lib\net451\System.Data.SQLite.Linq.dll + + + + + + + + + 3.5 + + + 3.5 + + + + + + + + dll\Tftp.Net.dll + + + + + UserControl + + + ucCalibration.cs + + + UserControl + + + ucCalibrationView.cs + + + UserControl + + + ucCommConfig.cs + + + UserControl + + + ucDataLog.cs + + + UserControl + + + ucEtcStatusView.cs + + + UserControl + + + ucEventLog.cs + + + UserControl + + + ucHistroy.cs + + + UserControl + + + ucMainStatus.cs + + + UserControl + + + ucModuleMainB.cs + + + UserControl + + + ucParamSet.cs + + + UserControl + + + ucShelfStatus.cs + + + UserControl + + + ucStatus.cs + + + UserControl + + + ucTargetControl.cs + + + UserControl + + + ucTftpClientcs.cs + + + UserControl + + + ucModuleMainA.cs + + + + + Form + + + fmxEtcStatus.cs + + + Form + + + fmxExcelFile.cs + + + Form + + + fmxFwImageConverter.cs + + + Form + + + fmxCalibration.cs + + + Form + + + fmxFwUpdate.cs + + + Form + + + fmxFwUpdateTftp.cs + + + Form + + + fmxHistory.cs + + + Form + + + fmxInventoryConfig.cs + + + Form + + + fmxModuleDetail.cs + + + Form + + + fmxParamConfig.cs + + + Form + + + fmxSystemSet.cs + + + Form + + + fmxWait.cs + + + + + + + + + + + + + + + + Form + + + fmxCommConfig.cs + + + Form + + + fmxMain.cs + + + + + + + + + + + + + + ucCalibration.cs + + + ucCalibrationView.cs + + + ucCommConfig.cs + + + ucDataLog.cs + + + ucEtcStatusView.cs + + + ucEventLog.cs + + + ucHistroy.cs + + + ucMainStatus.cs + + + ucModuleMainA.cs + + + ucModuleMainB.cs + + + ucParamSet.cs + + + ucShelfStatus.cs + + + ucStatus.cs + + + ucTargetControl.cs + + + ucTftpClientcs.cs + + + fmxEtcStatus.cs + + + fmxExcelFile.cs + + + fmxFwImageConverter.cs + + + fmxCalibration.cs + + + fmxCommConfig.cs + + + fmxFwUpdate.cs + + + fmxFwUpdateTftp.cs + + + fmxHistory.cs + + + fmxInventoryConfig.cs + + + fmxMain.cs + + + fmxModuleDetail.cs + + + fmxParamConfig.cs + + + fmxSystemSet.cs + + + fmxWait.cs + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + + + + + + if not exist "$(TargetDir)\Library" mkdir "$(TargetDir)\Library" +if not exist "$(TargetDir)\Library\kerneldlls" mkdir "$(TargetDir)\Library\kerneldlls" +move "$(TargetDir)\*.dll" "$(TargetDir)\Library" +move "$(TargetDir)\*.pdb" "$(TargetDir)\Library" +move "$(TargetDir)\*.xml" "$(TargetDir)\Library" +copy "$(ProjectDir)\dll\*.dll" "$(TargetDir)\Library" +copy "$(ProjectDir)\dll\kerneldlls\*.*" "$(TargetDir)\Library\kerneldlls" + +if not exist "$(TargetDir)\sql" mkdir "$(TargetDir)\sql" +copy "$(ProjectDir)\DB Schema\*.sql" "$(TargetDir)\sql" + + + if exist "$(TargetDir)\library" rmdir /s /q "$(TargetDir)\library" +if exist "$(TargetDir)\sql" rmdir /s /q "$(TargetDir)\sql" + + + + 이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다. + + + + + + + + + \ No newline at end of file diff --git a/LFP_Manager/LFP_Manager_GL.csproj.bak b/LFP_Manager/LFP_Manager_GL.csproj.bak new file mode 100644 index 0000000..ea0297e --- /dev/null +++ b/LFP_Manager/LFP_Manager_GL.csproj.bak @@ -0,0 +1,526 @@ + + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4} + WinExe + Properties + LFP_Manager + LFP_Manager_GL + v4.5.2 + 512 + + + 3.5 + + + + + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + x86 + false + + + pdbonly + false + bin\Release\ + DEBUG;TRACE + prompt + 4 + true + x86 + false + + + Resources\AMO_LOGO.ico + + + + + True + + + True + + + + + True + + + True + + + True + + + True + + + True + + + True + + + + + True + + + + True + + + True + + + True + + + True + + + True + + + + True + + + True + + + + True + + + + True + + + + + ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + dll\IPAddressControlLib.dll + + + dll\log4net.dll + + + False + dll\SnmpSharpNet.dll + + + + + + 3.5 + + + + ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net451\System.Data.SQLite.dll + + + ..\packages\System.Data.SQLite.EF6.1.0.113.0\lib\net451\System.Data.SQLite.EF6.dll + + + ..\packages\System.Data.SQLite.Linq.1.0.113.0\lib\net451\System.Data.SQLite.Linq.dll + + + + + + + + + 3.5 + + + 3.5 + + + + + + + + dll\Tftp.Net.dll + + + + + UserControl + + + ucCalibration.cs + + + UserControl + + + ucCalibrationView.cs + + + UserControl + + + ucCommConfig.cs + + + UserControl + + + ucDataLog.cs + + + UserControl + + + ucEtcStatusView.cs + + + UserControl + + + ucEventLog.cs + + + UserControl + + + ucHistroy.cs + + + UserControl + + + ucMainStatus.cs + + + UserControl + + + ucModuleMainB.cs + + + UserControl + + + ucParamSet.cs + + + UserControl + + + ucShelfStatus.cs + + + UserControl + + + ucStatus.cs + + + UserControl + + + ucTargetControl.cs + + + UserControl + + + ucTftpClientcs.cs + + + UserControl + + + ucModuleMainA.cs + + + + + Form + + + fmxEtcStatus.cs + + + Form + + + fmxExcelFile.cs + + + Form + + + fmxFwImageConverter.cs + + + Form + + + fmxCalibration.cs + + + Form + + + fmxFwUpdate.cs + + + Form + + + fmxFwUpdateTftp.cs + + + Form + + + fmxHistory.cs + + + Form + + + fmxInventoryConfig.cs + + + Form + + + fmxModuleDetail.cs + + + Form + + + fmxParamConfig.cs + + + Form + + + fmxSystemSet.cs + + + Form + + + fmxWait.cs + + + + + + + + + + + + + + + + Form + + + fmxCommConfig.cs + + + Form + + + fmxMain.cs + + + + + + + + + + + + + + ucCalibration.cs + + + ucCalibrationView.cs + + + ucCommConfig.cs + + + ucDataLog.cs + + + ucEtcStatusView.cs + + + ucEventLog.cs + + + ucHistroy.cs + + + ucMainStatus.cs + + + ucModuleMainA.cs + + + ucModuleMainB.cs + + + ucParamSet.cs + + + ucShelfStatus.cs + + + ucStatus.cs + + + ucTargetControl.cs + + + ucTftpClientcs.cs + + + fmxEtcStatus.cs + + + fmxExcelFile.cs + + + fmxFwImageConverter.cs + + + fmxCalibration.cs + + + fmxCommConfig.cs + + + fmxFwUpdate.cs + + + fmxFwUpdateTftp.cs + + + fmxHistory.cs + + + fmxInventoryConfig.cs + + + fmxMain.cs + + + fmxModuleDetail.cs + + + fmxParamConfig.cs + + + fmxSystemSet.cs + + + fmxWait.cs + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + + + + + + if not exist "$(TargetDir)\Library" mkdir "$(TargetDir)\Library" +if not exist "$(TargetDir)\Library\kerneldlls" mkdir "$(TargetDir)\Library\kerneldlls" +move "$(TargetDir)\*.dll" "$(TargetDir)\Library" +move "$(TargetDir)\*.pdb" "$(TargetDir)\Library" +move "$(TargetDir)\*.xml" "$(TargetDir)\Library" +copy "$(ProjectDir)\dll\*.dll" "$(TargetDir)\Library" +copy "$(ProjectDir)\dll\kerneldlls\*.*" "$(TargetDir)\Library\kerneldlls" + +if not exist "$(TargetDir)\sql" mkdir "$(TargetDir)\sql" +copy "$(ProjectDir)\DB Schema\*.sql" "$(TargetDir)\sql" + + + if exist "$(TargetDir)\library" rmdir /s /q "$(TargetDir)\library" +if exist "$(TargetDir)\sql" rmdir /s /q "$(TargetDir)\sql" + + + + 이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다. + + + + + + + + + \ No newline at end of file diff --git a/LFP_Manager/LFP_Manager_JP.csproj.bak b/LFP_Manager/LFP_Manager_JP.csproj.bak new file mode 100644 index 0000000..ed92028 --- /dev/null +++ b/LFP_Manager/LFP_Manager_JP.csproj.bak @@ -0,0 +1,411 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4} + WinExe + Properties + LFP_Manager + LFP_Manager_JP + v4.5.2 + 512 + + + 3.5 + + + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + x86 + false + + + pdbonly + false + bin\Release\ + DEBUG;TRACE + prompt + 4 + true + x86 + false + + + Resources\AMO_LOGO.ico + + + + True + + + True + + + True + + + True + + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + + True + + + + True + + + dll\IPAddressControlLib.dll + + + dll\log4net.dll + + + False + dll\SnmpSharpNet.dll + + + + + 3.5 + + + False + dll\System.Data.SQLite.dll + + + + + + 3.5 + + + 3.5 + + + + + + + + dll\Tftp.Net.dll + + + + + UserControl + + + ucCalibration.cs + + + UserControl + + + ucCommConfig.cs + + + UserControl + + + ucDataLog.cs + + + UserControl + + + ucEventLog.cs + + + UserControl + + + ucHistroy.cs + + + UserControl + + + ucMainStatus.cs + + + UserControl + + + ucParamSet.cs + + + UserControl + + + ucShelfStatus.cs + + + UserControl + + + ucStatus.cs + + + UserControl + + + ucTargetControl.cs + + + UserControl + + + ucTftpClientcs.cs + + + + + Form + + + fmxExcelFile.cs + + + Form + + + fmxFwImageConverter.cs + + + Form + + + fmxCalibration.cs + + + Form + + + fmxFwUpdate.cs + + + Form + + + fmxFwUpdateTftp.cs + + + Form + + + fmxHistorycs.cs + + + Form + + + fmxInventoryConfig.cs + + + Form + + + fmxParamConfig.cs + + + Form + + + fmxSystemSet.cs + + + Form + + + fmxWait.cs + + + + + + + + + + + + + + + + Form + + + fmxCommConfig.cs + + + Form + + + fmxMain.cs + + + + + + + + + + + + + ucCalibration.cs + + + ucCommConfig.cs + + + ucDataLog.cs + + + ucEventLog.cs + + + ucHistroy.cs + + + ucMainStatus.cs + + + ucParamSet.cs + + + ucShelfStatus.cs + + + ucStatus.cs + + + ucTargetControl.cs + + + ucTftpClientcs.cs + + + fmxExcelFile.cs + + + fmxFwImageConverter.cs + + + fmxCalibration.cs + + + fmxCommConfig.cs + + + fmxFwUpdate.cs + + + fmxFwUpdateTftp.cs + + + fmxHistorycs.cs + + + fmxInventoryConfig.cs + + + fmxMain.cs + + + fmxParamConfig.cs + + + fmxSystemSet.cs + + + fmxWait.cs + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + + + + + if not exist "$(TargetDir)\Library" mkdir "$(TargetDir)\Library" +move "$(TargetDir)\*.dll" "$(TargetDir)\Library" +move "$(TargetDir)\*.pdb" "$(TargetDir)\Library" +move "$(TargetDir)\*.xml" "$(TargetDir)\Library" + + + if not exist "$(TargetDir)\sql" mkdir "$(TargetDir)\sql" +copy "$(ProjectDir)\DB Schema\*.sql" "$(TargetDir)\sql" + + + \ No newline at end of file diff --git a/LFP_Manager/LFP_Manager_M20.csproj.bak b/LFP_Manager/LFP_Manager_M20.csproj.bak new file mode 100644 index 0000000..4641307 --- /dev/null +++ b/LFP_Manager/LFP_Manager_M20.csproj.bak @@ -0,0 +1,508 @@ + + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {BE0785A4-0CCB-44C5-A8C0-1AA2245E71F4} + WinExe + Properties + LFP_Manager + LFP_Manager_M20 + v4.8 + 512 + + + 3.5 + + + + + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + x86 + false + + + pdbonly + false + bin\Release\ + DEBUG;TRACE + prompt + 4 + true + x86 + false + + + Resources\AMO_LOGO.ico + + + + + True + + + True + + + + + True + + + True + + + True + + + True + + + True + + + True + + + + + True + + + + True + + + True + + + True + + + True + + + True + + + + True + + + True + + + + True + + + + True + + + + + ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + dll\IPAddressControlLib.dll + + + dll\log4net.dll + + + False + dll\SnmpSharpNet.dll + + + + + + 3.5 + + + + ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.113.3\lib\net451\System.Data.SQLite.dll + + + ..\packages\System.Data.SQLite.EF6.1.0.113.0\lib\net451\System.Data.SQLite.EF6.dll + + + ..\packages\System.Data.SQLite.Linq.1.0.113.0\lib\net451\System.Data.SQLite.Linq.dll + + + + + + + + + 3.5 + + + 3.5 + + + + + + + + dll\Tftp.Net.dll + + + + + UserControl + + + ucCalibration.cs + + + UserControl + + + ucCalibrationView.cs + + + UserControl + + + ucCommConfig.cs + + + UserControl + + + ucDataLog.cs + + + UserControl + + + ucEventLog.cs + + + UserControl + + + ucHistroy.cs + + + UserControl + + + ucMainStatus.cs + + + UserControl + + + ucModuleMainB.cs + + + UserControl + + + ucParamSet.cs + + + UserControl + + + ucShelfStatus.cs + + + UserControl + + + ucStatus.cs + + + UserControl + + + ucTargetControl.cs + + + UserControl + + + ucTftpClientcs.cs + + + UserControl + + + ucModuleMainA.cs + + + + + Form + + + fmxExcelFile.cs + + + Form + + + fmxFwImageConverter.cs + + + Form + + + fmxCalibration.cs + + + Form + + + fmxFwUpdate.cs + + + Form + + + fmxFwUpdateTftp.cs + + + Form + + + fmxHistory.cs + + + Form + + + fmxInventoryConfig.cs + + + Form + + + fmxModuleDetail.cs + + + Form + + + fmxParamConfig.cs + + + Form + + + fmxSystemSet.cs + + + Form + + + fmxWait.cs + + + + + + + + + + + + + + + + Form + + + fmxCommConfig.cs + + + Form + + + fmxMain.cs + + + + + + + + + + + + + + ucCalibration.cs + + + ucCalibrationView.cs + + + ucCommConfig.cs + + + ucDataLog.cs + + + ucEventLog.cs + + + ucHistroy.cs + + + ucMainStatus.cs + + + ucModuleMainA.cs + + + ucModuleMainB.cs + + + ucParamSet.cs + + + ucShelfStatus.cs + + + ucStatus.cs + + + ucTargetControl.cs + + + ucTftpClientcs.cs + + + fmxExcelFile.cs + + + fmxFwImageConverter.cs + + + fmxCalibration.cs + + + fmxCommConfig.cs + + + fmxFwUpdate.cs + + + fmxFwUpdateTftp.cs + + + fmxHistory.cs + + + fmxInventoryConfig.cs + + + fmxMain.cs + + + fmxModuleDetail.cs + + + fmxParamConfig.cs + + + fmxSystemSet.cs + + + fmxWait.cs + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + + + + + + if not exist "$(TargetDir)\Library" mkdir "$(TargetDir)\Library" +if not exist "$(TargetDir)\Library\kerneldlls" mkdir "$(TargetDir)\Library\kerneldlls" +move "$(TargetDir)\*.dll" "$(TargetDir)\Library" +move "$(TargetDir)\*.pdb" "$(TargetDir)\Library" +move "$(TargetDir)\*.xml" "$(TargetDir)\Library" +copy "$(ProjectDir)\dll\*.dll" "$(TargetDir)\Library" +copy "$(ProjectDir)\dll\kerneldlls\*.*" "$(TargetDir)\Library\kerneldlls" + +if not exist "$(TargetDir)\sql" mkdir "$(TargetDir)\sql" +copy "$(ProjectDir)\DB Schema\*.sql" "$(TargetDir)\sql" + + + if exist "$(TargetDir)\library" rmdir /s /q "$(TargetDir)\library" +if exist "$(TargetDir)\sql" rmdir /s /q "$(TargetDir)\sql" + + + + 이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다. + + + + + + + + + \ No newline at end of file diff --git a/LFP_Manager/Program.cs b/LFP_Manager/Program.cs new file mode 100644 index 0000000..a0e08e6 --- /dev/null +++ b/LFP_Manager/Program.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +using LFP_Manager.Forms; + +namespace LFP_Manager +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new fmxMain()); + } + } +} diff --git a/LFP_Manager/Properties/AssemblyInfo.cs b/LFP_Manager/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f968bc7 --- /dev/null +++ b/LFP_Manager/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("LFP Monitor Program (LFP Module 48V Series)")] +[assembly: AssemblyDescription("For LFPM-48xxxD")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("AMG (Amogreentech)")] +[assembly: AssemblyProduct("LFP Monitor - DBG Port for Delta")] +[assembly: AssemblyCopyright("Copyright 2024 © Amogreentech. Co., Ltd.")] +[assembly: AssemblyTrademark("AMG Energy Solution")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a97c6f26-af24-466a-888d-dfdba0e4bb78")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.1.7")] +[assembly: AssemblyFileVersion("1.0.1.7")] diff --git a/LFP_Manager/Properties/Resources.Designer.cs b/LFP_Manager/Properties/Resources.Designer.cs new file mode 100644 index 0000000..82187f2 --- /dev/null +++ b/LFP_Manager/Properties/Resources.Designer.cs @@ -0,0 +1,93 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace LFP_Manager.Properties { + using System; + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 + // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LFP_Manager.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + /// 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// (아이콘)과(와) 유사한 System.Drawing.Icon 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Icon AMO_LOGO { + get { + object obj = ResourceManager.GetObject("AMO_LOGO", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap AMO_LOGO1 { + get { + object obj = ResourceManager.GetObject("AMO_LOGO1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Delta_Logo_Small_250522 { + get { + object obj = ResourceManager.GetObject("Delta_Logo_Small_250522", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/LFP_Manager/Properties/Resources.resx b/LFP_Manager/Properties/Resources.resx new file mode 100644 index 0000000..f1e2cf8 --- /dev/null +++ b/LFP_Manager/Properties/Resources.resx @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\AMO_LOGO1.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\AMO_LOGO.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Delta_Logo_Small_250522.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/LFP_Manager/Properties/Settings.Designer.cs b/LFP_Manager/Properties/Settings.Designer.cs new file mode 100644 index 0000000..d696fde --- /dev/null +++ b/LFP_Manager/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace LFP_Manager.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.3.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/LFP_Manager/Properties/Settings.settings b/LFP_Manager/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/LFP_Manager/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/LFP_Manager/Properties/licenses.licx b/LFP_Manager/Properties/licenses.licx new file mode 100644 index 0000000..0465324 --- /dev/null +++ b/LFP_Manager/Properties/licenses.licx @@ -0,0 +1,10 @@ +DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraCharts.ChartControl, DevExpress.XtraCharts.v22.2.UI, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraGauges.Win.GaugeControl, DevExpress.XtraGauges.v22.2.Win, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraDataLayout.DataLayoutControl, DevExpress.XtraLayout.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/LFP_Manager/Properties/licenses.licx.bak b/LFP_Manager/Properties/licenses.licx.bak new file mode 100644 index 0000000..9075858 --- /dev/null +++ b/LFP_Manager/Properties/licenses.licx.bak @@ -0,0 +1,13 @@ +DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraGauges.Win.GaugeControl, DevExpress.XtraGauges.v20.1.Win, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraBars.Navigation.OfficeNavigationBar, DevExpress.XtraBars.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraCharts.ChartControl, DevExpress.XtraCharts.v20.1.UI, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraTreeMap.TreeMapControl, DevExpress.XtraTreeMap.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.Utils.MVVM.MVVMContext, DevExpress.Utils.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v20.1, Version=20.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/LFP_Manager/Resources/AMO_LOGO.ico b/LFP_Manager/Resources/AMO_LOGO.ico new file mode 100644 index 0000000..a18b5d2 Binary files /dev/null and b/LFP_Manager/Resources/AMO_LOGO.ico differ diff --git a/LFP_Manager/Resources/AMO_LOGO1.ico b/LFP_Manager/Resources/AMO_LOGO1.ico new file mode 100644 index 0000000..a18b5d2 Binary files /dev/null and b/LFP_Manager/Resources/AMO_LOGO1.ico differ diff --git a/LFP_Manager/Resources/Delta_Logo_Small_250522.png b/LFP_Manager/Resources/Delta_Logo_Small_250522.png new file mode 100644 index 0000000..0b6aebf Binary files /dev/null and b/LFP_Manager/Resources/Delta_Logo_Small_250522.png differ diff --git a/LFP_Manager/Threads/CsDbAsyncTask.cs b/LFP_Manager/Threads/CsDbAsyncTask.cs new file mode 100644 index 0000000..5f19d37 --- /dev/null +++ b/LFP_Manager/Threads/CsDbAsyncTask.cs @@ -0,0 +1,552 @@ +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Utils; +using Microsoft.Extensions.Logging; +using System; +using System.Data; +using System.Data.SQLite; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace LFP_Manager.Threads +{ + public class DbAsyncTask : IDisposable + { + #region FIELDS + + private readonly CommConfig _config; + private DeviceSystemData[] _systemData; + private readonly short[] _status = new short[2]; + private readonly short[] _oldStatus = new short[2]; + private readonly int _moduleId; + private readonly int _moduleQuantity; + private readonly ILogger _logger; + + private readonly CancellationTokenSource _cancellationTokenSource = new CancellationTokenSource(); + private Task _dbTask; + private readonly SemaphoreSlim _dataLock = new SemaphoreSlim(1, 1); + private readonly SemaphoreSlim _statusLock = new SemaphoreSlim(1, 1); + + private volatile bool _isRunning; + private volatile bool _disposed; + + // Connection pooling for better performance + private readonly object _connectionLock = new object(); + private SQLiteConnection _connection; + + public event DbDataPrint OnPrint; + + #endregion + + #region CONSTRUCTORS + + public DbAsyncTask(int moduleId, CommConfig config, DeviceSystemData[] systemData, ILogger logger = null) + { + if (config == null) + throw new ArgumentNullException(nameof(config)); + if (systemData == null) + throw new ArgumentNullException(nameof(systemData)); + if (moduleId <= 0) + throw new ArgumentOutOfRangeException(nameof(moduleId), "Module ID must be positive"); + + _moduleId = moduleId; + _config = config; + _systemData = systemData; + _logger = logger ?? CreateDefaultLogger(); + + _moduleQuantity = CalculateModuleQuantity(_config.CommType, _config.ModuleQty); + + _logger.LogInformation("DbAsyncTask initialized for Module {0} with {1} modules", + _moduleId, _moduleQuantity); + } + + private static ILogger CreateDefaultLogger() + { + var loggerFactory = LoggerFactory.Create(builder => + { + builder.AddConsole() + .AddDebug() + .SetMinimumLevel(LogLevel.Information); + }); + + return loggerFactory.CreateLogger(); + } + + #endregion + + #region PUBLIC METHODS + + public async Task StartAsync(CancellationToken cancellationToken) + { + if (_disposed) + throw new ObjectDisposedException(nameof(DbAsyncTask)); + + if (_isRunning) + { + _logger.LogWarning("DB thread for Module {0} is already running", _moduleId); + return true; + } + + try + { + _logger.LogInformation("Starting DB thread for Module {0}", _moduleId); + + await InitializeDatabaseAsync(cancellationToken).ConfigureAwait(false); + await InitializeConnectionAsync().ConfigureAwait(false); + + _dbTask = DbThreadProcessAsync(_cancellationTokenSource.Token); + _isRunning = true; + + _logger.LogInformation("DB thread started successfully for Module {0}", _moduleId); + OnPrint?.Invoke(this, string.Format("DB thread started for Module {0}", _moduleId)); + + return true; + } + catch (Exception ex) + { + _logger.LogError(ex, "Failed to start DB thread for Module {0}", _moduleId); + OnPrint?.Invoke(this, string.Format("Failed to start DB thread: {0}", ex.Message)); + + await CleanupResourcesAsync().ConfigureAwait(false); + return false; + } + } + + public async Task StopAsync(CancellationToken cancellationToken) + { + if (_disposed || !_isRunning) + return; + + _logger.LogInformation("Stopping DB thread for Module {0}", _moduleId); + + _isRunning = false; + _cancellationTokenSource.Cancel(); + + if (_dbTask != null) + { + try + { + await _dbTask.ConfigureAwait(false); + _logger.LogInformation("DB thread stopped successfully for Module {0}", _moduleId); + } + catch (OperationCanceledException) + { + _logger.LogDebug("DB thread was cancelled for Module {0}", _moduleId); + } + catch (Exception ex) + { + _logger.LogError(ex, "Error stopping DB thread for Module {0}", _moduleId); + OnPrint?.Invoke(this, string.Format("Error stopping DB thread: {0}", ex.Message)); + } + } + + await CleanupResourcesAsync().ConfigureAwait(false); + } + + public async Task UpdateStatusAsync(short status1, short status2, CancellationToken cancellationToken) + { + await _statusLock.WaitAsync(cancellationToken).ConfigureAwait(false); + try + { + _status[0] = status1; + _status[1] = status2; + } + finally + { + _statusLock.Release(); + } + + _logger.LogTrace("Status updated for Module {ModuleId}: Status1={Status1}, Status2={Status2}", + _moduleId, status1, status2); + } + + public async Task UpdateDataAsync(int moduleId, DeviceSystemData[] systemData, CancellationToken cancellationToken) + { + if (systemData == null) + throw new ArgumentNullException(nameof(systemData)); + + await _dataLock.WaitAsync(cancellationToken).ConfigureAwait(false); + try + { + _systemData = new DeviceSystemData[systemData.Length]; + Array.Copy(systemData, _systemData, systemData.Length); + } + finally + { + _dataLock.Release(); + } + + _logger.LogDebug("System data updated for Module {ModuleId}", moduleId); + } + + // Backward compatibility methods + public void UpdateStatus(short status1, short status2) + { + var task = UpdateStatusAsync(status1, status2, CancellationToken.None); + task.GetAwaiter().GetResult(); + } + + public void UpdateData(int moduleId, DeviceSystemData[] systemData) + { + var task = UpdateDataAsync(moduleId, systemData, CancellationToken.None); + task.GetAwaiter().GetResult(); + } + + #endregion + + #region PRIVATE METHODS + + private static int CalculateModuleQuantity(int commType, int configModuleQty) + { + if (commType == csConstData.CommType.COMM_RS485) + return Math.Max(1, configModuleQty); + return 1; + } + + private async Task InitializeDatabaseAsync(CancellationToken cancellationToken) + { + string dbPath = System.IO.Path.GetDirectoryName(Application.ExecutablePath); + if (string.IsNullOrEmpty(dbPath)) + throw new InvalidOperationException("Unable to determine executable path"); + + await Task.Run(() => csHistoryFunction.DbCreate(dbPath), cancellationToken).ConfigureAwait(false); + } + + private async Task InitializeConnectionAsync() + { + string dbFilename = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + csDbConstData.DataBase.FileName; + string connectionString = string.Format("Data Source={0};Pooling=true;Max Pool Size=10;", dbFilename); + + _connection = new SQLiteConnection(connectionString); + await _connection.OpenAsync().ConfigureAwait(false); + } + + private async Task DbThreadProcessAsync(CancellationToken cancellationToken) + { + DateTime lastLogTime = DateTime.MinValue; + int logPeriodSeconds = Math.Max(1, _config.DbLogPeriod); + + _logger.LogDebug("DB thread process started for Module {ModuleId}", _moduleId); + + try + { + while (!cancellationToken.IsCancellationRequested && _isRunning) + { + try + { + DateTime currentTime = DateTime.Now; + + if (ShouldLogData(lastLogTime, currentTime, logPeriodSeconds)) + { + await ProcessDatabaseLoggingAsync(currentTime, cancellationToken).ConfigureAwait(false); + lastLogTime = currentTime; + } + + // Check for alarms + await CheckAlarmAsync(cancellationToken).ConfigureAwait(false); + + await Task.Delay(100, cancellationToken).ConfigureAwait(false); + } + catch (OperationCanceledException) + { + _logger.LogDebug("DB thread process cancelled for Module {ModuleId}", _moduleId); + break; + } + catch (Exception ex) + { + _logger.LogError(ex, "DB thread error for Module {ModuleId}", _moduleId); + OnPrint?.Invoke(this, string.Format("DB thread error: {0}", ex.Message)); + + // Exponential backoff for error recovery + int delay = Math.Min(10000, 1000 * (int)Math.Pow(2, Math.Min(5, 1))); + await Task.Delay(delay, cancellationToken).ConfigureAwait(false); + } + } + } + finally + { + _logger.LogDebug("DB thread process completed for Module {ModuleId}", _moduleId); + } + } + + private static bool ShouldLogData(DateTime lastTime, DateTime currentTime, int periodSeconds) + { + if (lastTime == DateTime.MinValue) + return true; + + TimeSpan timeDiff = currentTime - lastTime; + return timeDiff.TotalSeconds >= periodSeconds; + } + + private async Task ProcessDatabaseLoggingAsync(DateTime currentTime, CancellationToken cancellationToken) + { + string modelName = csConstData.MODEL_STR[_config.UartModelIndex]; + await Task.Run(() => csDbUtils.LogDbCreate(modelName), cancellationToken).ConfigureAwait(false); + + DeviceSystemData[] systemDataCopy; + await _dataLock.WaitAsync(cancellationToken).ConfigureAwait(false); + try + { + systemDataCopy = new DeviceSystemData[_systemData.Length]; + Array.Copy(_systemData, systemDataCopy, _systemData.Length); + } + finally + { + _dataLock.Release(); + } + + await LogDataByCommTypeAsync(modelName, systemDataCopy, currentTime, cancellationToken).ConfigureAwait(false); + } + + private async Task LogDataByCommTypeAsync(string modelName, DeviceSystemData[] systemData, DateTime currentTime, CancellationToken cancellationToken) + { + switch (_config.CommType) + { + case csConstData.CommType.COMM_UART: + case csConstData.CommType.COMM_SNMP: + await LogSingleModuleAsync(modelName, systemData, currentTime, cancellationToken).ConfigureAwait(false); + break; + + case csConstData.CommType.COMM_RS485: + await LogMultipleModulesAsync(modelName, systemData, currentTime, cancellationToken).ConfigureAwait(false); + break; + + default: + _logger.LogWarning("Unknown communication type: {0}", _config.CommType); + break; + } + } + + private async Task LogSingleModuleAsync(string modelName, DeviceSystemData[] systemData, DateTime currentTime, CancellationToken cancellationToken) + { + if (_moduleId > 0 && _moduleId <= systemData.Length) + { + systemData[_moduleId - 1].mNo = _moduleId; + await Task.Run(() => csDbUtils.BmsLogDataInsert(modelName, ref systemData[_moduleId - 1], currentTime, 1000), cancellationToken) + .ConfigureAwait(false); + } + } + + private async Task LogMultipleModulesAsync(string modelName, DeviceSystemData[] systemData, DateTime currentTime, CancellationToken cancellationToken) + { + if (_moduleQuantity <= 1) + { + await LogSingleModuleAsync(modelName, systemData, currentTime, cancellationToken).ConfigureAwait(false); + return; + } + + using (var semaphore = new SemaphoreSlim(Environment.ProcessorCount)) + { + var tasks = new Task[Math.Min(_moduleQuantity, systemData.Length)]; + + for (int i = 0; i < tasks.Length; i++) + { + int moduleIndex = i; + tasks[i] = ProcessModuleAsync(semaphore, modelName, systemData, moduleIndex, currentTime, cancellationToken); + } + + await Task.WhenAll(tasks).ConfigureAwait(false); + } + } + + private async Task ProcessModuleAsync(SemaphoreSlim semaphore, string modelName, DeviceSystemData[] systemData, int index, DateTime currentTime, CancellationToken cancellationToken) + { + await semaphore.WaitAsync(cancellationToken).ConfigureAwait(false); + try + { + systemData[index].mNo = index + 1; + await Task.Run(() => csDbUtils.BmsLogDataInsert(modelName, ref systemData[index], currentTime, 1000), cancellationToken) + .ConfigureAwait(false); + } + finally + { + semaphore.Release(); + } + } + + private async Task CheckAlarmAsync(CancellationToken cancellationToken) + { + short[] currentStatus = new short[2]; + short[] previousStatus = new short[2]; + + await _statusLock.WaitAsync(cancellationToken).ConfigureAwait(false); + try + { + Array.Copy(_status, currentStatus, 2); + Array.Copy(_oldStatus, previousStatus, 2); + } + finally + { + _statusLock.Release(); + } + + if (HasStatusChanged(currentStatus, previousStatus)) + { + await ProcessAlarmChangesAsync(currentStatus, previousStatus, cancellationToken).ConfigureAwait(false); + + await _statusLock.WaitAsync(cancellationToken).ConfigureAwait(false); + try + { + Array.Copy(_status, _oldStatus, 2); + } + finally + { + _statusLock.Release(); + } + } + } + + private static bool HasStatusChanged(short[] current, short[] previous) + { + return current[0] != previous[0] || current[1] != previous[1]; + } + + private async Task ProcessAlarmChangesAsync(short[] currentStatus, short[] previousStatus, CancellationToken cancellationToken) + { + bool[] currentBits1 = csUtils.Int16ToBitArray(currentStatus[0]); + bool[] currentBits2 = csUtils.Int16ToBitArray(currentStatus[1]); + bool[] previousBits1 = csUtils.Int16ToBitArray(previousStatus[0]); + bool[] previousBits2 = csUtils.Int16ToBitArray(previousStatus[1]); + + _logger.LogTrace("Processing alarm changes for Module {ModuleId}", _moduleId); + await CheckCellVoltageAlarmAsync(currentBits1, currentBits2, previousBits1, previousBits2, cancellationToken).ConfigureAwait(false); + } + + private async Task CheckCellVoltageAlarmAsync(bool[] currentBits1, bool[] currentBits2, bool[] previousBits1, bool[] previousBits2, CancellationToken cancellationToken) + { + // Cell Over/Under Voltage Check + if (previousBits2[0] != currentBits2[0]) + { + if (currentBits2[0]) + { + await InsertAlarmRecordAsync(csDbConstData.DB_ALARM.CELL_UNDER_VOLTAGE, csDbConstData.DB_ALARM.FLAG_TRIP, cancellationToken).ConfigureAwait(false); + } + else + { + await HandleVoltageWarningOrReleaseAsync(currentBits1, previousBits1, cancellationToken).ConfigureAwait(false); + } + } + else if (previousBits1[0] != currentBits1[0]) + { + await HandleVoltageWarningOrReleaseAsync(currentBits1, previousBits1, cancellationToken).ConfigureAwait(false); + } + } + + private async Task HandleVoltageWarningOrReleaseAsync(bool[] currentBits1, bool[] previousBits1, CancellationToken cancellationToken) + { + int flag = currentBits1[0] ? + csDbConstData.DB_ALARM.FLAG_WARNING : + csDbConstData.DB_ALARM.FLAG_RELEASE; + + await InsertAlarmRecordAsync(csDbConstData.DB_ALARM.CELL_UNDER_VOLTAGE, flag, cancellationToken).ConfigureAwait(false); + } + + private async Task InsertAlarmRecordAsync(int alarmCode, int flagCode, CancellationToken cancellationToken) + { + if (_connection == null || _connection.State != ConnectionState.Open) + { + await InitializeConnectionAsync().ConfigureAwait(false); + } + + using (var transaction = _connection.BeginTransaction()) + { + try + { + using (var command = _connection.CreateCommand()) + { + command.Transaction = transaction; + command.CommandText = string.Format( + "INSERT INTO {0} (HTime, model, sno, alarm_name, alarm_code, flag_name, flag, param1, param2) " + + "VALUES (@HTime, @model, @sno, @alarm_name, @alarm_code, @flag_name, @flag, @param1, @param2)", + csDbConstData.DataBase.TableName); + + AddParameters(command, alarmCode, flagCode); + + await Task.Run(() => command.ExecuteNonQuery(), cancellationToken).ConfigureAwait(false); + } + transaction.Commit(); + } + catch + { + transaction.Rollback(); + throw; + } + } + } + + private static void AddParameters(SQLiteCommand command, int alarmCode, int flagCode) + { + var parameters = new[] + { + new SQLiteParameter("@HTime", DbType.DateTime) { Value = DateTime.Now }, + new SQLiteParameter("@model", DbType.String) { Value = "AAA" }, + new SQLiteParameter("@sno", DbType.Int16) { Value = 1 }, + new SQLiteParameter("@alarm_name", DbType.String) { Value = csDbConstData.DB_ALARM.ALARM_NAME[alarmCode] }, + new SQLiteParameter("@alarm_code", DbType.Int16) { Value = alarmCode }, + new SQLiteParameter("@flag_name", DbType.String) { Value = csDbConstData.DB_ALARM.FLAG_NAME[flagCode] }, + new SQLiteParameter("@flag", DbType.Int16) { Value = flagCode }, + new SQLiteParameter("@param1", DbType.Decimal) { Value = 0.0m }, + new SQLiteParameter("@param2", DbType.Decimal) { Value = 0.0m } + }; + + command.Parameters.AddRange(parameters); + } + + private async Task CleanupResourcesAsync() + { + if (_connection != null) + { + try + { + if (_connection.State == ConnectionState.Open) + { + _connection.Close(); + } + _connection.Dispose(); + _connection = null; + } + catch (Exception ex) + { + _logger.LogError(ex, "Error cleaning up database connection for Module {0}", _moduleId); + } + } + + await Task.CompletedTask.ConfigureAwait(false); + } + + #endregion + + #region DISPOSE PATTERN + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool disposing) + { + if (!_disposed && disposing) + { + try + { + StopAsync(CancellationToken.None).GetAwaiter().GetResult(); + } + catch (Exception ex) + { + _logger.LogError(ex, "Error during disposal for Module {0}", _moduleId); + } + + _cancellationTokenSource?.Dispose(); + _dataLock?.Dispose(); + _statusLock?.Dispose(); + _connection?.Dispose(); + + _disposed = true; + } + } + + #endregion + } +} \ No newline at end of file diff --git a/LFP_Manager/Threads/CsRs232Thread124050.cs b/LFP_Manager/Threads/CsRs232Thread124050.cs new file mode 100644 index 0000000..59c86ee --- /dev/null +++ b/LFP_Manager/Threads/CsRs232Thread124050.cs @@ -0,0 +1,706 @@ +using System; +using System.Threading; +using System.IO.Ports; +using System.Windows.Forms; +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Utils; + +namespace LFP_Manager.Threads +{ + public sealed class CsRs232Thread124050 : IDisposable + { + #region ENUMS + + private enum CommandType + { + NoCommand = 0, + WriteParam = 1, + WriteCoil = 2, + WriteRegister = 3, + ReadRegister = 4 + } + + private enum AddressChannel + { + Channel0 = 0, + Channel1 = 1, + Channel2 = 2, + Channel3 = 3 + } + + #endregion + + #region CONSTANTS + + private static class Constants + { + public const int BUFFER_SIZE = 512; + public const int DEFAULT_BAUD_RATE = 115200; + public const int MAX_TIMEOUT_COUNT = 5; + public const int DEFAULT_DATA_BITS = 8; + public const int POLLING_INTERVAL = 100; + public const int ERROR_RETRY_DELAY = 1000; + } + + #endregion + + #region PRIVATE FIELDS + + private readonly object _lockObject = new object(); + private readonly CommConfig _config; + private DeviceSystemData _systemData; + private readonly CancellationTokenSource _cancellationTokenSource; + private volatile bool _isRunning; + private volatile bool _isDisposed; + + private SerialPort _serialPort; + private Thread _commThread; + + private readonly byte[] _receiveBuffer; + private readonly byte[] _readBuffer; + private int _bufferStart; + private int _bufferEnd; + private ushort _readPosition; + private bool _bufferStarted; + + private readonly TUartTxBuff _uartTxBuff; + + private int _systemId; + private bool _uartPolling; + private bool _autoUartTx; + private AddressChannel _currentChannel; + + private ushort _requestRegAddr; + private ushort _requestRegLen; + private bool _responseFlag; + private int _responseType; + private CommandType _currentCommand; + private int _timeoutCount; + + private ushort _writeRegAddr; + private short _writeCoilRegData; + private byte[] _writeRegData; + + #endregion + + #region EVENTS + + public event UartDataUpdate OnUpdate; + public event UartDataRecv OnDataRecv; + public event UartDataPrint OnPrint; + + #endregion + + #region CONSTRUCTORS + + public CsRs232Thread124050(int systemId, CommConfig config, ref DeviceSystemData systemData) + { + if (config == null) + throw new ArgumentNullException(nameof(config)); + + _systemId = systemId; + _config = config; + _systemData = systemData; + _cancellationTokenSource = new CancellationTokenSource(); + + _receiveBuffer = new byte[Constants.BUFFER_SIZE]; + _readBuffer = new byte[Constants.BUFFER_SIZE]; + _uartTxBuff = new TUartTxBuff(); + _autoUartTx = true; + + InitializeSerialPort(); + } + + private void InitializeSerialPort() + { + try + { + _serialPort = new SerialPort(); + _serialPort.BaudRate = Constants.DEFAULT_BAUD_RATE; + _serialPort.DataBits = Constants.DEFAULT_DATA_BITS; + _serialPort.StopBits = StopBits.One; + _serialPort.Parity = Parity.None; + _serialPort.ReadTimeout = 500; + _serialPort.WriteTimeout = 500; + + _serialPort.DataReceived += SerialPort_DataReceived; + _serialPort.ErrorReceived += SerialPort_ErrorReceived; + _serialPort.PinChanged += SerialPort_PinChanged; + } + catch (Exception ex) + { + if (OnPrint != null) + { + OnPrint(this, string.Format("Failed to initialize serial port: {0}", ex.Message)); + } + throw; + } + } + + #endregion + + #region PUBLIC METHODS + + public bool Start(ref CommConfig config, int systemId, bool polling) + { + ThrowIfDisposed(); + + lock (_lockObject) + { + if (_isRunning) + return false; + + _systemId = systemId; + _uartPolling = polling; + + try + { + if (OpenPort(config.UartPort)) + { + _isRunning = true; + _commThread = new Thread(CommThreadProcess); + _commThread.IsBackground = true; + _commThread.Name = "UART_Communication_Thread"; + _commThread.Priority = ThreadPriority.AboveNormal; + _commThread.Start(); + return true; + } + } + catch (Exception ex) + { + if (OnPrint != null) + { + OnPrint(this, string.Format("Failed to start UART thread: {0}", ex.Message)); + } + } + + return false; + } + } + + public void Stop() + { + if (_isDisposed) + return; + + lock (_lockObject) + { + _isRunning = false; + if (_cancellationTokenSource != null) + { + _cancellationTokenSource.Cancel(); + } + ClosePort(); + } + } + + public void Dispose() + { + if (_isDisposed) + return; + + Stop(); + + lock (_lockObject) + { + if (_cancellationTokenSource != null) + { + _cancellationTokenSource.Dispose(); + } + if (_serialPort != null) + { + _serialPort.Dispose(); + } + _isDisposed = true; + } + + GC.SuppressFinalize(this); + } + + public void SetPolling(bool flag, int systemId, ref DeviceSystemData systemData) + { + ThrowIfDisposed(); + + lock (_lockObject) + { + _systemId = systemId; + _uartPolling = flag; + _systemData = systemData; + _systemData.mNo = systemId; + } + } + + public void SetAutoTx(bool autoTx) + { + ThrowIfDisposed(); + + lock (_lockObject) + { + _autoUartTx = autoTx; + } + } + + public void SetWriteCoilReg(ushort writeAddr, short writeData) + { + ThrowIfDisposed(); + + lock (_lockObject) + { + _currentCommand = CommandType.WriteCoil; + _writeRegAddr = writeAddr; + _writeCoilRegData = writeData; + Thread.Sleep(500); + } + } + + public void SetReadReg(ushort readAddr, ushort readLen, bool replyFlag) + { + ThrowIfDisposed(); + + lock (_lockObject) + { + _currentCommand = CommandType.ReadRegister; + _requestRegAddr = readAddr; + _requestRegLen = readLen; + _responseFlag = replyFlag; + } + } + + public void SetWriteReg(ushort writeAddr, short[] writeData) + { + ThrowIfDisposed(); + + if (writeData == null) + throw new ArgumentNullException(nameof(writeData)); + + lock (_lockObject) + { + _currentCommand = CommandType.WriteParam; + _writeRegAddr = writeAddr; + + TUartTRxData uartTRxData = new TUartTRxData(); + uartTRxData.type = (int)CommandType.WriteParam; + uartTRxData.data = csSerialCommFunction.MakeWriteRegisterData((ushort)_systemId, writeAddr, writeData); + uartTRxData.length = uartTRxData.data.Length; + + if (_uartTxBuff != null) + { + _uartTxBuff.PutBuff(uartTRxData); + } + } + } + + #endregion + + #region PRIVATE METHODS + + private void ThrowIfDisposed() + { + if (_isDisposed) + throw new ObjectDisposedException(GetType().FullName); + } + + private bool OpenPort(string portName) + { + try + { + if (string.IsNullOrEmpty(portName)) + throw new ArgumentException("Port name cannot be null or empty", "portName"); + + if (_serialPort.IsOpen) + _serialPort.Close(); + + _serialPort.PortName = portName; + _serialPort.Open(); + return true; + } + catch (Exception ex) + { + if (OnPrint != null) + { + OnPrint(this, string.Format("Failed to open port {0}: {1}", portName, ex.Message)); + } + return false; + } + } + + private void ClosePort() + { + try + { + if (_serialPort != null && _serialPort.IsOpen) + _serialPort.Close(); + } + catch (Exception ex) + { + if (OnPrint != null) + { + OnPrint(this, string.Format("Error closing port: {0}", ex.Message)); + } + } + } + + private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) + { + try + { + if (!_serialPort.IsOpen) return; + + int bytesToRead = _serialPort.BytesToRead; + if (bytesToRead == 0) return; + + byte[] buffer = new byte[bytesToRead]; + int bytesRead = _serialPort.Read(buffer, 0, bytesToRead); + + lock (_lockObject) + { + for (int i = 0; i < bytesRead; i++) + { + AddToBuffer(buffer[i]); + } + } + } + catch (Exception ex) + { + if (OnPrint != null) + { + OnPrint(this, string.Format("Error in data receive: {0}", ex.Message)); + } + } + } + + private void SerialPort_ErrorReceived(object sender, SerialErrorReceivedEventArgs e) + { + if (OnPrint != null) + { + OnPrint(this, string.Format("Serial port error: {0}", e.EventType)); + } + } + + private void SerialPort_PinChanged(object sender, SerialPinChangedEventArgs e) + { + if (OnPrint != null) + { + OnPrint(this, string.Format("Serial pin changed: {0}", e.EventType)); + } + } + + private void AddToBuffer(byte data) + { + _receiveBuffer[_bufferStart++] = data; + _bufferStart %= Constants.BUFFER_SIZE; + + if (_bufferStart == _bufferEnd) + { + _bufferEnd = (_bufferEnd + 1) % Constants.BUFFER_SIZE; + } + } + + private int GetFromBuffer() + { + if (_bufferStart == _bufferEnd) + return 0; + + int result = 0x0100 + _receiveBuffer[_bufferEnd++]; + _bufferEnd %= Constants.BUFFER_SIZE; + return result; + } + + private void FlushBuffer() + { + _bufferStart = _bufferEnd = 0; + } + + private void ProcessReceivedData() + { + if (_readPosition >= Constants.BUFFER_SIZE) + { + ResetReceiveState(); + return; + } + + if (!_bufferStarted) + { + int data = GetFromBuffer(); + if ((data & 0xFF) == _systemId || (data & 0xFF) == 0x7F) + { + _readPosition = 0; + _readBuffer[_readPosition++] = (byte)(data & 0xFF); + _bufferStarted = true; + } + return; + } + + int receivedByte = GetFromBuffer(); + if ((receivedByte & 0x0100) == 0) + return; + + _readBuffer[_readPosition++] = (byte)(receivedByte & 0xFF); + + ProcessModbusResponse(); + } + + private void ProcessModbusResponse() + { + int result = csSerialCommFunction.ModbusPacketFromSlaveCheck(_readBuffer, _readPosition); + + switch (result) + { + case 0: // Need more data + return; + + case 1: // Valid packet + if (OnPrint != null) + { + OnPrint(this, csLog.trx_data_print(_readBuffer, _readPosition, 1)); + } + _timeoutCount = 0; + ProcessValidResponse(); + break; + + case 2: // Firmware update packet + if (OnPrint != null) + { + OnPrint(this, csLog.trx_data_print(_readBuffer, _readPosition, 1)); + } + _timeoutCount = 0; + ProcessFirmwareResponse(); + break; + + case -1: // Error packet + ResetReceiveState(); + break; + } + } + + private void ProcessValidResponse() + { + try + { + int moduleId = _readBuffer[0]; + if (moduleId > 0) moduleId--; + + _systemData.CommFail = false; + _systemData.ShelfCommFail = false; + + if (_responseType == 0) + { + short[] resultCode = csSerialCommFunction124050.SerialRxProcess(_readBuffer, _requestRegAddr, _readPosition, ref _systemData); + if (OnUpdate != null) + { + OnUpdate(this, ref _systemData); + } + } + else + { + _responseType = 0; + if (OnDataRecv != null) + { + byte[] responseData = new byte[_readPosition]; + Array.Copy(_readBuffer, responseData, _readPosition); + OnDataRecv(responseData); + } + } + } + catch (Exception ex) + { + if (OnPrint != null) + { + OnPrint(this, string.Format("Error processing valid response: {0}", ex.Message)); + } + } + finally + { + ResetReceiveState(); + } + } + + private void ProcessFirmwareResponse() + { + try + { + if (OnDataRecv != null) + { + byte[] responseData = new byte[_readPosition]; + Array.Copy(_readBuffer, responseData, _readPosition); + OnDataRecv(responseData); + } + } + catch (Exception ex) + { + if (OnPrint != null) + { + OnPrint(this, string.Format("Error processing firmware response: {0}", ex.Message)); + } + } + finally + { + ResetReceiveState(); + } + } + + private void ResetReceiveState() + { + _bufferStarted = false; + _readPosition = 0; + _responseFlag = false; + } + + private void CommThreadProcess() + { + while (_isRunning && !_cancellationTokenSource.Token.IsCancellationRequested) + { + try + { + ProcessCommunication(); + Thread.Sleep(Constants.POLLING_INTERVAL); + } + catch (Exception ex) + { + if (OnPrint != null) + { + OnPrint(this, string.Format("Communication thread error: {0}", ex.Message)); + } + Thread.Sleep(Constants.ERROR_RETRY_DELAY); + } + } + } + + private void ProcessCommunication() + { + if (_serialPort == null || !_serialPort.IsOpen) + return; + + bool writeMode = false; + byte[] txData = PrepareTransmitData(ref writeMode); + + if (txData != null) + { + SendData(txData); + if (_responseFlag) + { + ProcessReceivedData(); + } + } + } + + private byte[] PrepareTransmitData(ref bool writeMode) + { + byte[] txData = null; + _responseType = 0; + + if (_uartTxBuff != null && _uartTxBuff.CheckBuff()) + { + TUartTRxData txBuffer = _uartTxBuff.GetBuff(); + if (txBuffer != null) + { + txData = txBuffer.data; + writeMode = true; + _responseFlag = true; + _responseType = txBuffer.type; + } + } + else if (_currentCommand == CommandType.WriteCoil) + { + txData = csSerialCommFunction.MakeWriteCoilData((ushort)_systemId, _writeRegAddr, _writeCoilRegData); + _currentCommand = CommandType.NoCommand; + _responseFlag = true; + } + else if (_currentCommand == CommandType.ReadRegister) + { + txData = csSerialCommFunction.MakeReadRegisterData((ushort)_systemId, csSerialCommFunction.READ_HOLDING_REG, _requestRegAddr, _requestRegLen); + _currentCommand = CommandType.NoCommand; + _responseFlag = true; + } + else if (_uartPolling && _autoUartTx) + { + txData = PreparePollingData(); + } + + return txData; + } + + private byte[] PreparePollingData() + { + ushort command; + + switch (_currentChannel) + { + case AddressChannel.Channel0: + _currentChannel = AddressChannel.Channel1; + _requestRegAddr = 0x0000; + _requestRegLen = 0x0040; + command = csSerialCommFunction.READ_HOLDING_REG; + _responseFlag = true; + break; + + case AddressChannel.Channel1: + _currentChannel = AddressChannel.Channel2; + _requestRegAddr = 0x0040; + _requestRegLen = 0x0040; + command = csSerialCommFunction.READ_HOLDING_REG; + _responseFlag = true; + break; + + case AddressChannel.Channel2: + _currentChannel = AddressChannel.Channel3; + _requestRegAddr = 0x0080; + _requestRegLen = 0x0040; + command = csSerialCommFunction.READ_HOLDING_REG; + _responseFlag = true; + break; + + case AddressChannel.Channel3: + if (_config.ModuleQty > 1) + { + _systemId++; + if (_systemId > _config.ModuleQty) + { + _systemId = 1; + } + } + _currentChannel = AddressChannel.Channel0; + command = csSerialCommFunction.NO_CMD; + _responseFlag = false; + break; + + default: + _currentChannel = AddressChannel.Channel0; + _requestRegAddr = 0x0000; + _requestRegLen = 0x0040; + command = csSerialCommFunction.READ_HOLDING_REG; + break; + } + + return command == csSerialCommFunction.NO_CMD ? null : + csSerialCommFunction.MakeReadRegisterData((ushort)_systemId, command, _requestRegAddr, _requestRegLen); + } + + private void SendData(byte[] data) + { + try + { + if (data == null) + throw new ArgumentNullException("data"); + + FlushBuffer(); + _serialPort.Write(data, 0, data.Length); + if (OnPrint != null) + { + OnPrint(this, csLog.trx_data_print(data, data.Length, 0)); + } + } + catch (Exception ex) + { + if (OnPrint != null) + { + OnPrint(this, string.Format("Send data error: {0}", ex.Message)); + } + throw; + } + } + + #endregion + } +} \ No newline at end of file diff --git a/LFP_Manager/Threads/CsRs485Thread124050.cs b/LFP_Manager/Threads/CsRs485Thread124050.cs new file mode 100644 index 0000000..abadab4 --- /dev/null +++ b/LFP_Manager/Threads/CsRs485Thread124050.cs @@ -0,0 +1,568 @@ +using System; + +using System.Threading; +using System.IO.Ports; +using System.Windows.Forms; + +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Utils; +using DevExpress.XtraGauges.Core.Model; + +namespace LFP_Manager.Threads +{ + class CsRs485Thread124050 + { + #region VARIABLES + + private readonly CommConfig Config; + private DeviceSystemData[] SystemData; + private Thread serialComm = null; + private SerialPort sPort = null; + private bool SerialPortThreadEnd = true; + + public int ModuleID = 1; + private bool UartPolling = false; + private bool AutoUartTx = true; + + private int addr_ch = 0; + private ushort RequestRegAddr = 0x0000; //Byul Init 0x0000 + private ushort RequestRegLen = 50; + private bool rFlag = false; + private int wFlag = 0; + private int rFlag2 = 0; + + private ushort ExtReqRegAddr = 0x0000; + + private ushort WriteRegAddr = 0x0000; //Byul Init 0x0000 + private short WriteCoilRegData = 0; + private byte[] WriteRegData; + private short WriteParamRegData; + + private TUartTxBuff UartTxBuff; + + public event UartDataUpdateRS485 OnUpdate = null; + public event UartDataRecvRS485 OnDataRecv = null; + public event UartDataPrintRS485 OnPrint = null; + + #endregion + + #region CONSTRUCTORS + + public CsRs485Thread124050(int mID, CommConfig aConfig, ref DeviceSystemData[] aSystemData) + { + ModuleID = mID; + Config = aConfig; + SystemData = aSystemData; + + UartTxBuff = new TUartTxBuff(); + + serialComm = new Thread(uartCommThread); + } + + public void disposeThread() + { + if (sPort != null) + { + if (sPort.IsOpen) + { + sPort.Close(); + } + sPort = null; + } + SerialPortThreadEnd = true; + if (serialComm != null) + { + if (serialComm.IsAlive) + { + serialComm.Abort(); + } + serialComm = null; + } + } + + public bool Start(ref CommConfig aConfig, int mID, bool aPolling) + { + bool result = false; + + ModuleID = mID; + UartPolling = aPolling; + + if (Open(aConfig.UartPort, 9600)) //Byul Init 9600 + { + SerialPortThreadEnd = false; + serialComm.Start(); + result = true; + } + return result; + } + + public void Stop() + { + SerialPortThreadEnd = true; + Close(); + } + + #endregion + + #region COMMPORT CONTROLS + + private void sDataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) + { + byte[] sRead = new byte[1024]; + int rLen = 0; + + try + { + rLen = ((SerialPort)sender).Read(sRead, 0, 1024); + + for (int i = 0; i < rLen; i++) + { + PutBuff(sRead[i]); + } + } + catch (Exception) + { + + } + } + + private void sErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e) + { + // + //csMakeDataFunction.SetData() + } + + private void sPinChanged(object sender, System.IO.Ports.SerialPinChangedEventArgs e) + { + // + } + + private bool Open(string cPort, int cBaudrate) + { + sPort = new SerialPort(); + sPort.PortName = cPort; + sPort.BaudRate = cBaudrate; + sPort.DataReceived += sDataReceived; + sPort.ErrorReceived += sErrorReceived; + sPort.PinChanged += sPinChanged; + + try + { + sPort.Open(); + } + catch (Exception ex) + { + throw new Exception("Error Open - " + ex.Message); + } + + return sPort.IsOpen; + } + + private void Close() + { + if (sPort != null) + { + if (sPort.IsOpen) + { + sPort.Close(); + } + sPort = null; + } + } + + #endregion + + #region PUBLIC FUNCTION + + public void SetPolling(bool flag, int mID, ref DeviceSystemData[] aSystemData) + { + ModuleID = mID; + UartPolling = flag; + SystemData = aSystemData; + SystemData[ModuleID - 1].mNo = ModuleID; + } + + public void SetAutoTx(bool autoTx) + { + AutoUartTx = autoTx; + } + + public void SetWriteCoilReg(ushort WriteAddr, short WriteData) + { + wFlag = 2; + WriteRegAddr = WriteAddr; + WriteCoilRegData = WriteData; + + for (int i = 0; i < 500; i += 10) + { + Thread.Sleep(10); + Application.DoEvents(); + } + } + public void SetWriteReg(ushort WriteAddr, byte[] WriteData, bool ReplyFlag, int type) + { + WriteRegAddr = WriteAddr; + + TUartTRxData uartTRxData = new TUartTRxData(); + uartTRxData.type = type; + //uartTRxData.data = CsRs485CommFunction124050.MakeWriteRegisterData((ushort)ModuleID, WriteRegAddr, WriteData); + uartTRxData.data = WriteData; + uartTRxData.length = uartTRxData.data.Length; + + UartTxBuff?.PutBuff(uartTRxData); + } + + public void SetParam(ushort WriteAddr, short WriteData) + { + byte[] sData = CsRs485CommFunction124050.MakeWriteRegisterData((ushort)ModuleID, WriteAddr, WriteData); + + if (sData != null) + { + TUartTRxData aData = new TUartTRxData(); + aData.length = sData.Length; + aData.data = sData; + + UartTxBuff.PutBuff(aData); + } + } + + public void SetReadWriteParam(ushort WriteAddr, short WriteData) + { + byte[] sData = CsRs485CommFunction124050.MakeReadWriteRegisterData((ushort)ModuleID, WriteAddr, WriteData); + + if (sData != null) + { + TUartTRxData aData = new TUartTRxData(); + aData.length = sData.Length; + aData.data = sData; + + ExtReqRegAddr = WriteAddr; + + UartTxBuff.PutBuff(aData); + } + } + + #endregion + + #region RX BUFFERING + + private const int BUFFER_SIZE = 512; + + private readonly byte[] rBuffer = new byte[BUFFER_SIZE]; + private int rBufStart = 0; + private int rBufEnd = 0; + + private void PutBuff(byte c) + { + rBuffer[rBufStart++] = c; + rBufStart %= BUFFER_SIZE; + + if (rBufStart == rBufEnd) + { + rBufEnd++; + rBufEnd %= BUFFER_SIZE; + } + } + + private int GetBuff() + { + int result = 0; + + if (rBufStart != rBufEnd) + { + result = 0x0100 + rBuffer[rBufEnd++]; + rBufEnd %= BUFFER_SIZE; + } + return result; + } + + private void FlushBuff() + { + rBufStart = rBufEnd = 0; + } + + #endregion + + #region TX BUFFERING + + private byte[] MakeWriteRegData(ushort DevID, ushort WriteAddr, ushort WriteLen, ref ushort[] WriteData) + { + byte[] wData = null; + + if (WriteLen > 0) + { + + } + + return wData; + } + + private string MakeCheckSum(byte[] sData, int len) + { + string result = ""; + int checksum = 0; + + for (int i = 0; i < len; i++) + { + checksum += sData[i + 1]; + } + + checksum = ~checksum + 1; + + result = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum); + + return result; + } + + private byte[] MakeTxDataDelta(bool wData) + { + byte[] sData = null; + + if ((UartTxBuff != null) && (UartTxBuff.CheckBuff())) + { + TUartTRxData sBuff = UartTxBuff.GetBuff(); + if (sBuff != null) + { + sData = sBuff.data; + wData = true; + rFlag = true; + rFlag2 = sBuff.type; + + RequestRegAddr = ExtReqRegAddr; + } + } + else + { + if (AutoUartTx && UartPolling) + { + ushort sCmd; + switch (addr_ch) + { + case 0: // Battery Status Data + addr_ch = 1; + RequestRegAddr = 0x0FFF; //Byul Init 0x0000 + RequestRegLen = 0x4C; + sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x04 + rFlag = true; + break; + case 1: // Gyroscope Data + addr_ch = 2; + RequestRegAddr = 0x4000; + RequestRegLen = 7; + sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x17 + rFlag = true; + break; + case 2: + addr_ch = 3; + RequestRegAddr = 0x3000; + RequestRegLen = 3; + sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x19 + rFlag = true; + break; + //case 3: + // addr_ch = 4; + // RequestRegAddr = 0x0000; + // RequestRegLen = 1; + // sCmd = CsSerialCommFunctionDelta.READ_DEV_ID; // Command 0x2B + // rFlag = true; + // break; + case 3: + addr_ch = 4; + RequestRegAddr = 100; + RequestRegLen = 28; + sCmd = CsSerialCommFunctionDelta.READ_HOLDING_REG; // Command 0x03 + rFlag = true; + break; + case 4: + if (Config.ModuleQty > 1) + { + ModuleID++; + if (ModuleID > Config.ModuleQty) + { + ModuleID = 1; + } + } + addr_ch = 0; + sCmd = CsSerialCommFunctionDelta.NO_CMD; + rFlag = false; + break; + default: + addr_ch = 0; + RequestRegAddr = 0x0FFF; //Byul Init 0x0000 + RequestRegLen = 27; + sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x04 + rFlag = true; + break; + } + if (sCmd == CsSerialCommFunctionDelta.NO_CMD) + { + sData = null; + } + else if (sCmd == CsSerialCommFunctionDelta.READ_DEV_ID) + { + sData = CsSerialCommFunctionDelta.MakeReadDevIdRegReqData((ushort)ModuleID, sCmd, RequestRegAddr); + } + else + { + sData = CsSerialCommFunctionDelta.MakeReadRegisterData((ushort)ModuleID, sCmd, RequestRegAddr, RequestRegLen); + } + } + } + return sData; + } + + #endregion + + #region COMM THREAD + + private readonly byte[] ReadBuf = new byte[BUFFER_SIZE]; + ushort rPosition = 0; + bool BuffStart = false; + + private void RecvPacketInit() + { + BuffStart = false; + rPosition = 0; + } + + private void uartCommThread() + { + int RecvTimeout = Config.RecvWaitTime; + int getData = 0; + byte cData = 0; + int[] TimeOutCount = new int[csConstData.SystemInfo.MAX_MODULE_SIZE]; + + StartSend: + while (SerialPortThreadEnd == false) + { + if ((sPort == null) || (sPort.IsOpen == false)) continue; + + FlushBuff(); + byte[] txData = MakeTxDataDelta(false); + if (sPort == null) return; + if (txData != null) + { + sPort.Write(txData, 0, txData.Length); + OnPrint?.Invoke(this, csLog.trx_data_print(txData, txData.Length, 0)); + } + + if (rFlag == true) + { + DateTime rDateTime = DateTime.Now; + + RecvPacketInit(); + + while (true) + { + DateTime nDateTime = rDateTime.AddMilliseconds(RecvTimeout); + if (nDateTime < DateTime.Now) break; + + if (((getData = GetBuff()) & 0x0100) != 0x0000) + { + rDateTime = DateTime.Now; + + cData = (byte)(getData & 0x00FF); + + if (rPosition >= BUFFER_SIZE) RecvPacketInit(); + + if (BuffStart == false) + { + if ((cData == (byte)ModuleID) || (cData == (byte)0x7F)) + { + rPosition = 0; + ReadBuf[rPosition++] = cData; + BuffStart = true; + } + } + else + { + ReadBuf[rPosition++] = cData; + + switch (CsRs485CommFunction124050.ModbusPacketFromSlaveCheck(ReadBuf, rPosition)) + { + case 0: // Need more data + break; + case 1: // Packet OK, no error + OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1)); + + TimeOutCount[ModuleID - 1] = 0; + + int mID = ReadBuf[0]; + if (mID > 0) mID--; + + SystemData[mID].CommFail = false; + SystemData[mID].ShelfCommFail = false; + short[] result_code = CsRs485CommFunction124050.SerialRxProcess(ReadBuf, RequestRegAddr, rPosition, ref SystemData[mID]); + + OnUpdate?.Invoke(this, ref SystemData); + + Thread.Sleep(5); + goto StartSend; + case 2: // Fw Update Packet OK + OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1)); + + TimeOutCount[ModuleID - 1] = 0; + rFlag = false; + if (OnDataRecv != null) + { + byte[] adata = new byte[rPosition + 1]; + for (int j = 0; j < adata.Length; j++) + { + adata[j] = ReadBuf[j]; + } + OnDataRecv(adata); + } + goto StartSend; + case -1: // Packet error + RecvPacketInit(); + Thread.Sleep(100); + goto StartSend; + default: + break; + } + } + Thread.Sleep(1); + } + else + { + Thread.Sleep(1); + } + } + + if (rPosition > 0) + { + OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1)); + + Thread.Sleep(1); + } + else + { + TimeOutCount[ModuleID - 1]++; + if (TimeOutCount[ModuleID - 1] >= 10) + { + TimeOutCount[ModuleID - 1] = 10; + //SystemData[0].CommFail = true; + if (SystemData[ModuleID - 1].ShelfCommFail == false) + { + SystemData[ModuleID - 1].ShelfCommFail = true; + csUtils.DataInit(Config, ref SystemData[ModuleID - 1]); + } + } + Thread.Sleep(100); + } + OnUpdate?.Invoke(this, ref SystemData); + Thread.Sleep(1); + } + else + { + Thread.Sleep(10); + } /* if (rFlag == true) */ + rPosition = 0; + Thread.Sleep(100); + } + } + + #endregion + } +} diff --git a/LFP_Manager/Threads/CsSnmpThread.cs b/LFP_Manager/Threads/CsSnmpThread.cs new file mode 100644 index 0000000..aed7a72 --- /dev/null +++ b/LFP_Manager/Threads/CsSnmpThread.cs @@ -0,0 +1,526 @@ +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using SnmpSharpNet; +using System; +using System.Net; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using LFP_Manager.Utils; +using System.Windows.Forms; +using static DevExpress.Xpo.Helpers.AssociatedCollectionCriteriaHelper; + +namespace LFP_Manager.Threads +{ + public delegate void SetResult(string result, bool error); + public delegate void DataUpdate(object sender, ref DeviceSystemData rData); + class CsSnmpThread + { + #region VARIABLES + private DeviceSystemData SystemData; + private CommConfig Config; + + private Thread snmpThread = null; + private bool snmpThreadHold = true; + + private string targetIP = ""; + + private bool snmpDataRecv = false; + private string snmpResult = ""; + + private bool AutoSnmpTx = true; + + private int type = 0; + private int OidIndex = 0; + private int OidMax = 0; + private int OidIndexBase = 0; + + private int CommTimeOut = 0; + + private string[] OidList; + + private int SetSnmpMode = 0; + private int SetSnmpMode1 = 0; + private UInt32 SetSnmpValue = 0; + private string SetSnmpStringData; + + public event DataUpdate OnUpdate = null; + public event SetResult OnSetResult = null; + #endregion + + #region CONSTRUCTORS + public CsSnmpThread() + { + snmpThread = new Thread(snmpThreadFuncA); + snmpThread.Start(); + } + + public CsSnmpThread(CommConfig aConfig, ref DeviceSystemData aSystemData) + { + Config = aConfig; + + type = Config.SnmpModelIndex; + + OidIndex = 0; + OidList = CsSnmpConstData.SnmpOidInfo; + OidMax = OidList.Length; + + SystemData = aSystemData; + + snmpThread = new Thread(snmpThreadFuncA); + snmpThread.Start(); + } + #endregion + + #region PUBLIC FUNCTION + public void disposeThread() + { + snmpThreadHold = true; + snmpThread.Abort(); + } + + public void Start(string IP, bool autoTx) + { + targetIP = IP; + snmpThreadHold = false; + + AutoSnmpTx = autoTx; + } + + public void Stop() + { + snmpThreadHold = true; + } + + public bool GetStatus() + { + return snmpThreadHold; + } + + public string GetResult() + { + string result = ""; + + if (snmpDataRecv) + { + result = snmpResult; + snmpDataRecv = false; + } + return result; + } + public void SetAutoTx(bool autoTx) + { + AutoSnmpTx = autoTx; + } + #endregion + + #region COMM. THREAD + + public string GetSnmpOidInfo(int index) + { + return OidList[index]; + } + + bool SetCmdbySnmp(UdpTarget sTarget, int mode, UInt32 value, string svalue) + { + bool resultError = false; + Pdu SetPdu = new Pdu(PduType.Set); + + // Set a value to unsigned integer + SetPdu.VbList.Clear(); + + switch (mode) + { + case 1: // Reset Command + SetPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.13.1.0"), new Integer32(Convert.ToInt32(value))); + break; + case 2: // Module Quantity Set + SetPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.4.0"), new Integer32(Convert.ToInt32(value))); + break; + case 3: // Alarm Output Mode + SetPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.5.0"), new Integer32(Convert.ToInt32(value))); + break; + case 4: // Manufacture Date + SetPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.6.0"), new Integer32(Convert.ToInt32(value))); + break; + case 5: // BMS Serial Number + SetPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.7.0"), new OctetString(svalue)); + break; + } + + // Set Agent security parameters + AgentParameters aparam = new AgentParameters(SnmpVersion.Ver1, new OctetString("public")); + + // Make SNMP request + try + { + // Send request and wait for response + SnmpV1Packet result = sTarget.Request(SetPdu, aparam) as SnmpV1Packet; + + // If result is null then agent didn't reply or we couldn't parse the reply. + if (result != null) + { + // ErrorStatus other then 0 is an error returned by + // the Agent - see SnmpConstants for error definitions + if (result.Pdu.ErrorStatus != 0) + { + // agent reported an error with the request + snmpResult = String.Format("Error in SNMP reply. Error {0} index {1}", + result.Pdu.ErrorStatus, + result.Pdu.ErrorIndex); + + if (OnSetResult != null) + { + OnSetResult(snmpResult, true); + } + } + else + { + // Everything is ok. Agent will return the new value for the OID we changed + string resultString; + if (result.Pdu.VbList[0].Type == AsnType.OCTETSTRING) + resultString = result.Pdu.VbList[0].Value.ToString(); + else + resultString = result.Pdu.VbList[0].Value.ToString(); + + snmpResult = String.Format("SNMP Received data. result {0}", + resultString); + + OnSetResult?.Invoke(snmpResult, false); + } + } + else + { + if (snmpDataRecv == false) + { + snmpResult = DateTime.Now.ToString("[yyyy-MM-dd hh:mm:ss] ") + String.Format("No response received from SNMP agent."); + snmpDataRecv = true; + + OnSetResult?.Invoke(snmpResult, true); + } + } + } + catch (Exception ex) + { + if (snmpDataRecv == false) + { + snmpResult = "[" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "] " + String.Format("Exception : {0}", ex.Message); + snmpDataRecv = true; + + OnSetResult?.Invoke(snmpResult, true); + } + resultError = true; + } + + return resultError; + } + + public void SetDataBySnmp(int mode, UInt32 value) + { + SetSnmpMode = mode; + SetSnmpValue = value; + } + + public void SetDataBySnmp(int mode, string value) + { + SetSnmpMode1 = mode; + SetSnmpStringData = value; + } + + private void snmpThreadFuncA() + { + while (true) + { + if (snmpThreadHold == false) + { + // SNMP community name + OctetString community = new OctetString("admin"); + + // Define agent parameters class + AgentParameters param = new AgentParameters(community); + // Set SNMP version to 1 (or 2) + param.Version = SnmpVersion.Ver1; + // Construct the agent address object + // IpAddress class is easy to use here because + // it will try to resolve constructor parameter if it doesn't + // parse to an IP address + String dstAddr = targetIP; + IpAddress agent = new IpAddress(dstAddr); + + // Construct target + UdpTarget target = new UdpTarget((IPAddress)agent, 161, 1000, 1); + + // Pdu class used for all requests + Pdu pdu = new Pdu(PduType.Get); + + if (SetSnmpMode != 0) + { + SetCmdbySnmp(target, SetSnmpMode, SetSnmpValue, SetSnmpStringData); + SetSnmpMode = 0; + } + else if (SetSnmpMode1 != 0) + { + SetCmdbySnmp(target, SetSnmpMode1, SetSnmpValue, SetSnmpStringData); + SetSnmpMode1 = 0; + } + else + { + // SNMP GET + while (AutoSnmpTx) + { + snmpResult = ""; + + if ((SetSnmpMode != 0) || (SetSnmpMode1 != 0)) + { + break; + } + + pdu.VbList.Clear(); + pdu.VbList.Add(GetSnmpOidInfo(OidIndex)); + + // Make SNMP request + try + { + //SnmpV1Packet result = (SnmpV1Packet)target.Request(pdu, param); + target.Timeout = 100; + // agent reported an error with the request + snmpResult = csLog.trx_msg_print(string.Format("SEND {0}: OID [{1}]" + , target.Address.ToString() + , pdu.VbList[0].Oid.ToString() + ) + , 0 + ) + ; + OnSetResult?.Invoke(snmpResult, true); + + SnmpV1Packet result = (SnmpV1Packet)target.Request(pdu, param); + // If result is null then agent didn't reply or we couldn't parse the reply. + if (result != null) + { + // ErrorStatus other then 0 is an error returned by + // the Agent - see SnmpConstants for error definitions + if (result.Pdu.ErrorStatus != 0) + { + // agent reported an error with the request + snmpResult = csLog.trx_msg_print(string.Format("Error in SNMP reply. Error {0} index {1} - {2}" + , result.Pdu.ErrorStatus + , result.Pdu.ErrorIndex + , result.Pdu.VbList[0].Oid.ToString() + ) + , 1 + ) + ; + OnSetResult?.Invoke(snmpResult, true); + } + else + { + snmpResult = csLog.trx_msg_print(string.Format("RECV {0}: OID [{1}]: [{2}]" + , target.Address.ToString() + , result.Pdu.VbList[0].Oid.ToString() + , result.Pdu.VbList[0].Value.ToString() + ) + , 1 + ) + ; + OnSetResult?.Invoke(snmpResult, true); + + String resultTxt = ""; + // Reply variables are returned in the same order as they were added + // to the VbList + //resultTxt = String.Format("[{0}] ({1}): {2}", + // result.Pdu.VbList[0].Oid.ToString(), + // SnmpConstants.GetTypeName(result.Pdu.VbList[0].Value.Type), + // result.Pdu.VbList[0].Value.ToString()); + + resultTxt = String.Format(".{0}", result.Pdu.VbList[0].Oid.ToString()); + uint[] resultInt = (uint[])result.Pdu.VbList[0].Oid; + + int len = resultInt.Length; + + if ((resultInt[0] == 1) + && (resultInt[1] == 3) + && (resultInt[2] == 6) + && (resultInt[3] == 1) + && (resultInt[4] == 2) + && (resultInt[5] == 1) + && (resultInt[6] == 15) + ) + { + //double resultDouble = 0.0; + if (result.Pdu.VbList[0].Value.Type == AsnType.OCTETSTRING) + { + try + { + //resultDouble = Convert.ToDouble(result.Pdu.VbList[0].Value.ToString()); + csMakeDataFunction.SetSnmpData((int)resultInt[7], result.Pdu.VbList[0].Value.ToString(), ref SystemData); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + } + else if (result.Pdu.VbList[0].Type == AsnType.OCTETSTRING) + { + MessageBox.Show(result.Pdu.VbList[0].Value.ToString()); + } + + CalcAvgTemperatureModule(ref SystemData, (uint)SystemData.tempQty); + CheckShelfCommFail(ref SystemData); + + OnUpdate?.Invoke(this, ref SystemData); + } + + CommTimeOut = 0; + SystemData.CommFail = false; + } + Thread.Sleep(50); + } + else + { + if (snmpDataRecv == false) + { + snmpResult = DateTime.Now.ToString("[yyyy-MM-dd hh:mm:ss] ") + String.Format("No response received from SNMP agent."); + snmpDataRecv = true; + } + CommTimeOut++; + + if (CommTimeOut >= 20) + { + SystemData.CommFail = true; + InitModuleData(); + CommTimeOut = 20; + } + } + + OidIndex++; + OidIndex %= OidMax; + + Thread.Sleep(1); + } + catch (Exception ex) + { + snmpResult = csLog.trx_msg_print(string.Format("Exception in SNMP reply. Error {0} - {1}" + , pdu.VbList[0].Oid.ToString() + , ex.Message + ) + , 1 + ) + ; + OnSetResult?.Invoke(snmpResult, true); + CommTimeOut++; + + if (CommTimeOut >= 10) + { + SystemData.CommFail = true; + InitModuleData(); + CommTimeOut = 10; + } + break; + } + } + CheckShelfCommFail(ref SystemData); + OnUpdate?.Invoke(this, ref SystemData); + } + pdu.Clone(); + target.Close(); + + Thread.Sleep(500); + } + } + } + + private void InitModuleData() + { + SystemData.ValueData.voltageOfPack = 0; + SystemData.ValueData.current = 0; + SystemData.ValueData.averageCurrent = 0; + SystemData.ValueData.rSOC = 0; + SystemData.ValueData.stateOfHealth = 0; + for (int i = 0; i < SystemData.ValueData.CellVoltage.Length; i++) + { + SystemData.ValueData.CellVoltage[i] = 0; + } + for (int i = 0; i < SystemData.ValueData.CellTemperature.Length; i++) + { + SystemData.ValueData.CellTemperature[i] = 0; + } + SystemData.AvgData.avgCellVoltage = 0; + SystemData.AvgData.diffCellVoltage = 0; + SystemData.AvgData.maxCellVoltage = 0; + SystemData.AvgData.minCellVoltage = 0; + SystemData.AvgData.maxCellNum = 0; + SystemData.AvgData.minCellNum = 0; + + SystemData.AvgData.avgTemp = 0; + SystemData.AvgData.diffTemp = 0; + SystemData.AvgData.maxTemp = 0; + SystemData.AvgData.minTemp = 0; + SystemData.AvgData.maxTempNum = 0; + SystemData.AvgData.minTempNum = 0; + } + + private void CheckShelfCommFail(ref DeviceSystemData aSystemData) + { + if (aSystemData.StatusData.batteryStatus == 0x0003) + { aSystemData.ShelfCommFail = true; } + else + { aSystemData.ShelfCommFail = false; } + } + + #endregion + + static void CalcAvgTemperatureModule(ref DeviceSystemData aSystemData, UInt32 tSize) + { + short i, j; + int sum; + TMinMax min, max; + + min = new TMinMax(); + max = new TMinMax(); + + sum = 0; + max.value = 0; + max.num = 0; + min.value = 0; + min.num = 0; + + j = 0; + for (i = 0; i < tSize; i++) + { + if (j == 0) + { + max.value = aSystemData.ValueData.CellTemperature[i]; + max.num = i; + min.value = aSystemData.ValueData.CellTemperature[i]; + min.num = i; + } + + if (max.value < aSystemData.ValueData.CellTemperature[i]) + { + max.value = aSystemData.ValueData.CellTemperature[i]; + max.num = i; + } + if (min.value > aSystemData.ValueData.CellTemperature[i]) + { + min.value = aSystemData.ValueData.CellTemperature[i]; + min.num = i; + } + + sum += aSystemData.ValueData.CellTemperature[i]; + j++; + } + + if (j == 0) + { aSystemData.AvgData.avgTemp = 0; } + else + { aSystemData.AvgData.avgTemp = (short)(sum / j); } + + aSystemData.AvgData.maxTemp = max.value; + aSystemData.AvgData.maxTempNum = max.num; + aSystemData.AvgData.minTemp = min.value; + aSystemData.AvgData.minTempNum = min.num; + } + } +} diff --git a/LFP_Manager/Threads/CsSnmpThread124050.cs b/LFP_Manager/Threads/CsSnmpThread124050.cs new file mode 100644 index 0000000..cdad2c4 --- /dev/null +++ b/LFP_Manager/Threads/CsSnmpThread124050.cs @@ -0,0 +1,583 @@ +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Utils; +using SnmpSharpNet; +using System; +using System.Net; +using System.Threading; +using System.Threading.Tasks; + +namespace LFP_Manager.Threads +{ + /// + /// 향상된 SNMP 통신 스레드 클래스 - 안전하고 효율적인 리소스 관리 + /// + public class CsSnmpThread124050 : IDisposable + { + #region CONSTANTS + private const int MAX_COMM_TIMEOUT = 20; + private const int SNMP_TIMEOUT_MS = 1000; + private const int SNMP_RETRIES = 1; + private const int SNMP_PORT = 161; + private const int THREAD_SLEEP_MS = 50; + private const int OPERATION_SLEEP_MS = 500; + private const string DEFAULT_COMMUNITY = "admin"; + #endregion + + #region FIELDS + private DeviceSystemData _systemData; + private readonly CommConfig _config; + private readonly string[] _oidList; + private readonly object _lockObject = new object(); + + private Task _snmpTask; + private CancellationTokenSource _cancellationTokenSource; + private volatile bool _disposed = false; + + private string _targetIP = ""; + private bool _autoSnmpTx = true; + private int _oidIndex = 0; + private int _commTimeOut = 0; + + // SNMP SET 관련 필드 + private volatile int _setSnmpMode = 0; + private volatile int _setSnmpMode1 = 0; + private volatile uint _setSnmpValue = 0; + private volatile string _setSnmpStringData = ""; + + // 이벤트 및 델리게이트 + public event DataUpdate OnUpdate; + public event SetResult OnSetResult; + #endregion + + #region CONSTRUCTORS + public CsSnmpThread124050() + { + _cancellationTokenSource = new CancellationTokenSource(); + _snmpTask = Task.Run(() => SnmpThreadFunction(_cancellationTokenSource.Token)); + } + + public CsSnmpThread124050(CommConfig config, ref DeviceSystemData systemData) + { + _config = config ?? throw new ArgumentNullException(nameof(config)); + _systemData = systemData ?? throw new ArgumentNullException(nameof(systemData)); + + _oidList = CsSnmpConstData124050.SnmpOidInfo; + if (_oidList == null || _oidList.Length == 0) + { + throw new InvalidOperationException("OID 목록이 비어있습니다."); + } + + _cancellationTokenSource = new CancellationTokenSource(); + _snmpTask = Task.Run(() => SnmpThreadFunction(_cancellationTokenSource.Token)); + } + #endregion + + #region PUBLIC METHODS + /// + /// SNMP 통신 시작 + /// + public void Start(string ip, bool autoTx = true) + { + if (string.IsNullOrWhiteSpace(ip)) + throw new ArgumentException("IP 주소가 유효하지 않습니다.", nameof(ip)); + + lock (_lockObject) + { + _targetIP = ip; + _autoSnmpTx = autoTx; + } + } + + /// + /// SNMP 통신 중지 + /// + public void Stop() + { + lock (_lockObject) + { + _autoSnmpTx = false; + } + } + + /// + /// 현재 상태 반환 + /// + public bool IsRunning => _autoSnmpTx && !_disposed; + + /// + /// 자동 전송 모드 설정 + /// + public void SetAutoTx(bool autoTx) + { + lock (_lockObject) + { + _autoSnmpTx = autoTx; + } + } + + /// + /// SNMP SET 명령 (정수 값) + /// + public void SetDataBySnmp(int mode, uint value) + { + lock (_lockObject) + { + _setSnmpMode = mode; + _setSnmpValue = value; + } + } + + /// + /// SNMP SET 명령 (문자열 값) + /// + public void SetDataBySnmp(int mode, string value) + { + lock (_lockObject) + { + _setSnmpMode1 = mode; + _setSnmpStringData = value ?? ""; + } + } + + /// + /// 리소스 해제 + /// + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + #endregion + + #region PRIVATE METHODS + protected virtual void Dispose(bool disposing) + { + if (!_disposed && disposing) + { + _cancellationTokenSource?.Cancel(); + + try + { + _snmpTask?.Wait(1000); // 5초 대기 + } + catch (OperationCanceledException) + { + // 정상적인 취소 + } + catch (AggregateException ex) when (ex.InnerExceptions.Count == 1 && ex.InnerException is OperationCanceledException) + { + // 정상적인 취소 + } + + _cancellationTokenSource?.Dispose(); + _disposed = true; + } + } + + /// + /// 메인 SNMP 스레드 함수 + /// + private async Task SnmpThreadFunction(CancellationToken cancellationToken) + { + while (!cancellationToken.IsCancellationRequested) + { + try + { + if (string.IsNullOrEmpty(_targetIP)) + { + await Task.Delay(OPERATION_SLEEP_MS, cancellationToken); + continue; + } + + using (var target = CreateSnmpTarget()) + { + await ProcessSnmpOperations(target, cancellationToken); + } + + await Task.Delay(OPERATION_SLEEP_MS, cancellationToken); + } + catch (OperationCanceledException) + { + break; + } + catch (Exception ex) + { + LogError($"SNMP 스레드 오류: {ex.Message}"); + await Task.Delay(1000, cancellationToken); + } + } + } + + /// + /// SNMP 타겟 생성 + /// + private UdpTarget CreateSnmpTarget() + { + var agent = new IpAddress(_targetIP); + return new UdpTarget((IPAddress)agent, SNMP_PORT, SNMP_TIMEOUT_MS, SNMP_RETRIES); + } + + /// + /// SNMP 작업 처리 + /// + private async Task ProcessSnmpOperations(UdpTarget target, CancellationToken cancellationToken) + { + // SET 명령 처리 + if (_setSnmpMode != 0) + { + await ExecuteSetCommand(target, _setSnmpMode, _setSnmpValue, _setSnmpStringData); + _setSnmpMode = 0; + return; + } + + if (_setSnmpMode1 != 0) + { + await ExecuteSetCommand(target, _setSnmpMode1, _setSnmpValue, _setSnmpStringData); + _setSnmpMode1 = 0; + return; + } + + // GET 명령 처리 + if (_autoSnmpTx) + { + await ExecuteGetOperations(target, cancellationToken); + } + } + + /// + /// SNMP SET 명령 실행 + /// + private async Task ExecuteSetCommand(UdpTarget target, int mode, uint value, string stringValue) + { + try + { + var setPdu = new Pdu(PduType.Set); + + switch (mode) + { + case 1: // Reset Command + setPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.13.1.0"), new Integer32(Convert.ToInt32(value))); + break; + case 2: // Module Quantity Set + setPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.4.0"), new Integer32(Convert.ToInt32(value))); + break; + case 3: // Alarm Output Mode + setPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.5.0"), new Integer32(Convert.ToInt32(value))); + break; + case 4: // Manufacture Date + setPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.6.0"), new Integer32(Convert.ToInt32(value))); + break; + case 5: // BMS Serial Number + setPdu.VbList.Add(new Oid(".1.3.6.1.4.1.33.2.7.0"), new OctetString(stringValue)); + break; + default: + LogError($"알 수 없는 SET 모드: {mode}"); + return false; + } + + var param = new AgentParameters(SnmpVersion.Ver1, new OctetString(DEFAULT_COMMUNITY)); + var result = await Task.Run(() => target.Request(setPdu, param) as SnmpV1Packet); + + return ProcessSetResult(result); + } + catch (Exception ex) + { + LogError($"SET 명령 실행 중 오류: {ex.Message}"); + OnSetResult?.Invoke($"SET 명령 실행 실패: {ex.Message}", true); + return false; + } + } + + /// + /// SET 결과 처리 + /// + private bool ProcessSetResult(SnmpV1Packet result) + { + if (result == null) + { + LogError("SNMP 에이전트로부터 응답이 없습니다."); + OnSetResult?.Invoke("SNMP 에이전트 응답 없음", true); + return false; + } + + if (result.Pdu.ErrorStatus != 0) + { + var errorMsg = $"SNMP 응답 오류: Error {result.Pdu.ErrorStatus} index {result.Pdu.ErrorIndex}"; + LogError(errorMsg); + OnSetResult?.Invoke(errorMsg, true); + return false; + } + + var resultValue = result.Pdu.VbList[0].Value.ToString(); + var successMsg = $"SNMP SET 성공: {resultValue}"; + OnSetResult?.Invoke(successMsg, false); + return true; + } + + /// + /// SNMP GET 작업 실행 + /// + private async Task ExecuteGetOperations(UdpTarget target, CancellationToken cancellationToken) + { + while (_autoSnmpTx && !cancellationToken.IsCancellationRequested) + { + if (_setSnmpMode != 0 || _setSnmpMode1 != 0) + break; + + try + { + var pdu = new Pdu(PduType.Get); + pdu.VbList.Add(GetCurrentOid()); + + var param = new AgentParameters(SnmpVersion.Ver1, new OctetString(DEFAULT_COMMUNITY)); + + LogTransaction($"SEND {target.Address}: OID [{pdu.VbList[0].Oid}]"); + + var result = await Task.Run(() => target.Request(pdu, param) as SnmpV1Packet); + + if (await ProcessGetResult(result, target)) + { + _commTimeOut = 0; + _systemData.CommFail = false; + } + else + { + HandleCommunicationTimeout(); + } + + MoveToNextOid(); + await Task.Delay(THREAD_SLEEP_MS, cancellationToken); + } + catch (Exception ex) + { + LogError($"GET 작업 중 오류: {ex.Message}"); + HandleCommunicationTimeout(); + break; + } + } + + UpdateSystemStatus(); + } + + /// + /// GET 결과 처리 + /// + private async Task ProcessGetResult(SnmpV1Packet result, UdpTarget target) + { + return await Task.Run(() => + { + if (result == null) + { + LogError("SNMP 에이전트로부터 응답이 없습니다."); + return false; + } + + if (result.Pdu.ErrorStatus != 0) + { + LogError($"SNMP 응답 오류: Error {result.Pdu.ErrorStatus} index {result.Pdu.ErrorIndex}"); + return false; + } + + LogTransaction($"RECV {target.Address}: OID [{result.Pdu.VbList[0].Oid}]: [{result.Pdu.VbList[0].Value}]"); + + // OID 검증 및 데이터 처리 + var oidArray = (uint[])result.Pdu.VbList[0].Oid; + if (IsValidTargetOid(oidArray)) + { + ProcessValidData(result, oidArray); + return true; + } + + return false; + }); + } + + /// + /// 유효한 타겟 OID인지 확인 + /// + private bool IsValidTargetOid(uint[] oidArray) + { + return oidArray.Length >= 8 && + oidArray[0] == 1 && oidArray[1] == 3 && oidArray[2] == 6 && + oidArray[3] == 1 && oidArray[4] == 2 && oidArray[5] == 1 && oidArray[6] == 15; + } + + /// + /// 유효한 데이터 처리 + /// + private void ProcessValidData(SnmpV1Packet result, uint[] oidArray) + { + try + { + if (result.Pdu.VbList[0].Value.Type == AsnType.OCTETSTRING) + { + var value = result.Pdu.VbList[0].Value.ToString(); + csMakeDataFunction124050.SetSnmpData((int)oidArray[7], value, ref _systemData); + } + + CalcAvgTemperatureModule(ref _systemData, (uint)_systemData.tempQty); + CheckShelfCommFail(ref _systemData); + + OnUpdate?.Invoke(this, ref _systemData); + } + catch (Exception ex) + { + LogError($"데이터 처리 중 오류: {ex.Message}"); + } + } + + /// + /// 통신 타임아웃 처리 + /// + private void HandleCommunicationTimeout() + { + _commTimeOut++; + if (_commTimeOut >= MAX_COMM_TIMEOUT) + { + _systemData.CommFail = true; + InitModuleData(); + _commTimeOut = MAX_COMM_TIMEOUT; + } + } + + /// + /// 시스템 상태 업데이트 + /// + private void UpdateSystemStatus() + { + CheckShelfCommFail(ref _systemData); + OnUpdate?.Invoke(this, ref _systemData); + } + + /// + /// 현재 OID 반환 + /// + private string GetCurrentOid() + { + return _oidList?[_oidIndex] ?? ""; + } + + /// + /// 다음 OID로 이동 + /// + private void MoveToNextOid() + { + _oidIndex = (_oidIndex + 1) % (_oidList?.Length ?? 1); + } + + /// + /// 모듈 데이터 초기화 + /// + private void InitModuleData() + { + if (_systemData?.ValueData == null) return; + + _systemData.ValueData.voltageOfPack = 0; + _systemData.ValueData.current = 0; + _systemData.ValueData.averageCurrent = 0; + _systemData.ValueData.rSOC = 0; + _systemData.ValueData.stateOfHealth = 0; + + Array.Clear(_systemData.ValueData.CellVoltage, 0, _systemData.ValueData.CellVoltage.Length); + Array.Clear(_systemData.ValueData.CellTemperature, 0, _systemData.ValueData.CellTemperature.Length); + + if (_systemData.AvgData != null) + { + _systemData.AvgData.avgCellVoltage = 0; + _systemData.AvgData.diffCellVoltage = 0; + _systemData.AvgData.maxCellVoltage = 0; + _systemData.AvgData.minCellVoltage = 0; + _systemData.AvgData.maxCellNum = 0; + _systemData.AvgData.minCellNum = 0; + _systemData.AvgData.avgTemp = 0; + _systemData.AvgData.diffTemp = 0; + _systemData.AvgData.maxTemp = 0; + _systemData.AvgData.minTemp = 0; + _systemData.AvgData.maxTempNum = 0; + _systemData.AvgData.minTempNum = 0; + } + } + + /// + /// 선반 통신 실패 확인 + /// + private void CheckShelfCommFail(ref DeviceSystemData systemData) + { + systemData.ShelfCommFail = systemData.StatusData.batteryStatus == 0x0003; + } + + /// + /// 평균 온도 계산 + /// + private static void CalcAvgTemperatureModule(ref DeviceSystemData systemData, uint tempSize) + { + if (systemData?.ValueData?.CellTemperature == null || systemData.AvgData == null) + return; + + var temperatures = systemData.ValueData.CellTemperature; + var validCount = Math.Min((int)tempSize, temperatures.Length); + + if (validCount == 0) + { + systemData.AvgData.avgTemp = 0; + return; + } + + var sum = 0; + var max = new { value = temperatures[0], index = 0 }; + var min = new { value = temperatures[0], index = 0 }; + + for (int i = 0; i < validCount; i++) + { + var temp = temperatures[i]; + sum += temp; + + if (temp > max.value) + max = new { value = temp, index = i }; + if (temp < min.value) + min = new { value = temp, index = i }; + } + + systemData.AvgData.avgTemp = (short)(sum / validCount); + systemData.AvgData.maxTemp = max.value; + systemData.AvgData.maxTempNum = max.index; + systemData.AvgData.minTemp = min.value; + systemData.AvgData.minTempNum = min.index; + } + + /// + /// 트랜잭션 로그 + /// + private void LogTransaction(string message) + { + try + { + var logMessage = csLog.trx_msg_print(message, 1); + OnSetResult?.Invoke(logMessage, false); + } + catch + { + // 로그 실패 시 무시 + } + } + + /// + /// 오류 로그 + /// + private void LogError(string message) + { + try + { + var timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + var logMessage = $"[{timestamp}] {message}"; + OnSetResult?.Invoke(logMessage, true); + } + catch + { + // 로그 실패 시 무시 + } + } + #endregion + } +} \ No newline at end of file diff --git a/LFP_Manager/Threads/CsUartThread124050.cs b/LFP_Manager/Threads/CsUartThread124050.cs new file mode 100644 index 0000000..0e06f73 --- /dev/null +++ b/LFP_Manager/Threads/CsUartThread124050.cs @@ -0,0 +1,765 @@ +using System; + +using System.Threading; +using System.IO.Ports; +using System.Windows.Forms; + +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Utils; +using DevExpress.XtraGauges.Core.Model; + +namespace LFP_Manager.Threads +{ + class CsUartThread124050 + { + #region VARIABLES + + private readonly CommConfig Config; + private DeviceSystemData SystemData; + private Thread serialComm = null; + private SerialPort sPort = null; + private bool SerialPortThreadEnd = true; + + public int SystemId = 0; + private bool UartPolling = false; + private bool AutoUartTx = true; + + private int addr_ch = 0; + private ushort RequestRegAddr = 0x0000; //Byul Init 0x0000 + private ushort RequestRegLen = 50; + private bool rFlag = false; + private int rFlag2 = 0; + private int wFlag = 0; + + private ushort ReadRegAddr = 0x0000; //Byul Init 0x0000 + private ushort ReadRegLen = 0x0000; //Byul Init 0x0000 + + private ushort WriteRegAddr = 0x0000; //Byul Init 0x0000 + private short WriteCoilRegData = 0; + private byte[] WriteRegData; + + private TUartTxBuff uartTxBuff = null; + + public event UartDataUpdate OnUpdate = null; + public event UartDataRecv OnDataRecv = null; + public event UartDataPrint OnPrint = null; + + #endregion + + #region CONSTRUCTORS + + public CsUartThread124050(int sId, CommConfig aConfig, ref DeviceSystemData aSystemData) + { + SystemId = sId; + Config = aConfig; + SystemData = aSystemData; + + uartTxBuff = new TUartTxBuff(); + + serialComm = new Thread(uartCommThread); + } + + public void disposeThread() + { + if (sPort != null) + { + if (sPort.IsOpen) + { + sPort.Close(); + } + sPort = null; + } + SerialPortThreadEnd = true; + if (serialComm != null) + { + if (serialComm.IsAlive) + { + serialComm.Abort(); + } + serialComm = null; + } + } + + public bool Start(ref CommConfig aConfig, int sId, bool aPolling) + { + bool result = false; + + SystemId = sId; + UartPolling = aPolling; + + if (Open(aConfig.UartPort, 115200)) //Byul Init 9600 + { + SerialPortThreadEnd = false; + serialComm.Start(); + result = true; + } + return result; + } + + public void Stop() + { + SerialPortThreadEnd = true; + Close(); + } + + #endregion + + #region COMMPORT CONTROLS + + private void sDataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) + { + byte[] sRead = new byte[1024]; + int rLen = 0; + + try + { + rLen = ((SerialPort)sender).Read(sRead, 0, 1024); + + for (int i = 0; i < rLen; i++) + { + PutBuff(sRead[i]); + } + } + catch (Exception) + { + + } + } + + private void sErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e) + { + // + //csMakeDataFunction.SetData() + } + + private void sPinChanged(object sender, System.IO.Ports.SerialPinChangedEventArgs e) + { + // + } + + private bool Open(string cPort, int cBaudrate) + { + sPort = new SerialPort(); + sPort.PortName = cPort; + sPort.BaudRate = cBaudrate; + sPort.DataReceived += sDataReceived; + sPort.ErrorReceived += sErrorReceived; + sPort.PinChanged += sPinChanged; + + try + { + sPort.Open(); + } + catch (Exception ex) + { + throw new Exception("Error Open - " + ex.Message); + } + + return sPort.IsOpen; + } + + private void Close() + { + if (sPort != null) + { + if (sPort.IsOpen) + { + sPort.Close(); + } + sPort = null; + } + } + + #endregion + + #region PUBLIC FUNCTION + + public void SetPolling(bool flag, int sId, ref DeviceSystemData aSystemData) + { + SystemId = sId; + UartPolling = flag; + SystemData = aSystemData; + SystemData.mNo = SystemId; + } + + public void SetAutoTx(bool autoTx) + { + AutoUartTx = autoTx; + } + + public void SetWriteCoilReg(ushort WriteAddr, short WriteData) + { + wFlag = 2; + WriteRegAddr = WriteAddr; + WriteCoilRegData = WriteData; + + for (int i = 0; i < 500; i += 10) + { + Thread.Sleep(10); + Application.DoEvents(); + } + } + + public void SetWriteReg(ushort WriteAddr, byte[] WriteData, bool ReplyFlag, int type) + { + WriteRegAddr = WriteAddr; + + TUartTRxData uartTRxData = new TUartTRxData(); + uartTRxData.type = type; + //uartTRxData.data = csSerialCommFunction.MakeWriteRegisterData((ushort)SystemId, WriteRegAddr, WriteData); + uartTRxData.data = WriteData; + uartTRxData.length = uartTRxData.data.Length; + + uartTxBuff?.PutBuff(uartTRxData); + } + public void SetReadReg(ushort ReadAddr, ushort ReadLen, bool ReplyFlag) + { + wFlag = 4; + ReadRegAddr = ReadAddr; + ReadRegLen = ReadLen; + } + + public void SetParam(ushort WriteAddr, short[] WriteData) + { + wFlag = 1; + + WriteRegAddr = WriteAddr; + + TUartTRxData uartTRxData = new TUartTRxData(); + uartTRxData.type = wFlag; + uartTRxData.data = csSerialCommFunction.MakeWriteRegisterData((ushort)SystemId, WriteRegAddr, WriteData); + uartTRxData.length = uartTRxData.data.Length; + + uartTxBuff?.PutBuff(uartTRxData); + } + + public void SendProcessFromApp(int sId, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib) + { + short[] data = null; + + switch (mode) + { + case csConstData.UART_PARAM_LIST.CELL_UNDER_VOLTAGE: // Cell Under Volatge Parameter + data = new short[1]; + data[0] = aParam.CellUnderVoltageWarning; SetParam((ushort)(mode + 0), data); + data[0] = aParam.CellUnderVoltageTrip; SetParam((ushort)(mode + 1), data); + data[0] = aParam.CellUnderVoltageRelease; SetParam((ushort)(mode + 2), data); + break; + case csConstData.UART_PARAM_LIST.CELL_OVER_VOLTAGE: // Cell Over Volatge Parameter + data = new short[1]; + data[0] = aParam.CellOverVoltageWarning; SetParam((ushort)(mode + 0), data); + data[0] = aParam.CellOverVoltageTrip; SetParam((ushort)(mode + 1), data); + data[0] = aParam.CellOverVoltageRelease; SetParam((ushort)(mode + 2), data); + break; + case csConstData.UART_PARAM_LIST.PACK_UNDER_VOLTAGE: // Pack Under Volatge Parameter + data = new short[1]; + data[0] = (short)(aParam.SysUnderVoltageWarning * 10); SetParam((ushort)(mode + 0), data); + data[0] = (short)(aParam.SysUnderVoltageTrip * 10); SetParam((ushort)(mode + 1), data); + data[0] = (short)(aParam.SysUnderVoltageRelease * 10); SetParam((ushort)(mode + 2), data); + break; + case csConstData.UART_PARAM_LIST.PACK_OVER_VOLTAGE: // Pack Over Volatge Parameter + data = new short[1]; + data[0] = (short)(aParam.SysOverVoltageWarning * 10); SetParam((ushort)(mode + 0), data); + data[0] = (short)(aParam.SysOverVoltageTrip * 10); SetParam((ushort)(mode + 1), data); + data[0] = (short)(aParam.SysOverVoltageRelease * 10); SetParam((ushort)(mode + 2), data); + break; + case csConstData.UART_PARAM_LIST.CHG_LOW_TEMPERATURE: // Charge Low Temperature Parameter + data = new short[1]; + data[0] = (short)(aParam.ChaLowTempWarning + 50); SetParam((ushort)(mode + 0), data); + data[0] = (short)(aParam.ChaLowTempTrip + 50); SetParam((ushort)(mode + 1), data); + data[0] = (short)(aParam.ChaLowTempRelease + 50); SetParam((ushort)(mode + 2), data); + break; + case csConstData.UART_PARAM_LIST.CHG_HIGH_TEMPERATURE: // Pack High Temperature Parameter + data = new short[1]; + data[0] = (short)(aParam.ChaHighTempWarning + 50); SetParam((ushort)(mode + 0), data); + data[0] = (short)(aParam.ChaHighTempTrip + 50); SetParam((ushort)(mode + 1), data); + data[0] = (short)(aParam.ChaHighTempRelease + 50); SetParam((ushort)(mode + 2), data); + break; + case csConstData.UART_PARAM_LIST.DCH_LOW_TEMPERATURE: // Charge Low Temperature Parameter + data = new short[1]; + data[0] = (short)(aParam.DchLowTempWarning + 50); SetParam((ushort)(mode + 0), data); + data[0] = (short)(aParam.DchLowTempTrip + 50); SetParam((ushort)(mode + 1), data); + data[0] = (short)(aParam.DchLowTempRelease + 50); SetParam((ushort)(mode + 2), data); + break; + case csConstData.UART_PARAM_LIST.DCH_HIGH_TEMPERATURE: // Pack High Temperature Parameter + data = new short[1]; + data[0] = (short)(aParam.DchHighTempWarning + 50); SetParam((ushort)(mode + 0), data); + data[0] = (short)(aParam.DchHighTempTrip + 50); SetParam((ushort)(mode + 1), data); + data[0] = (short)(aParam.DchHighTempRelease + 50); SetParam((ushort)(mode + 2), data); + break; + case csConstData.UART_PARAM_LIST.CHG_OVER_CURRENT: // Charge Over Current Parameter + data = new short[1]; + data[0] = (short)(aParam.ChaOverCurrentReleaseTime * 1); SetParam((ushort)(mode + 0), data); + data[0] = (short)(aParam.ChaOverCurrentTrip1 * 10); SetParam((ushort)(mode + 2), data); + data[0] = (short)(aParam.ChaOverCurrentTrip2 * 10); SetParam((ushort)(mode + 5), data); + break; + case csConstData.UART_PARAM_LIST.DCH_OVER_CURRENT: // Discharge Over Current Parameter + data = new short[1]; + data[0] = (short)(aParam.DchOverCurrentReleaseTime * 1); SetParam((ushort)(mode + 0), data); + data[0] = (short)(aParam.DchOverCurrentTrip1 * 10); SetParam((ushort)(mode + 2), data); + data[0] = (short)(aParam.DchOverCurrentTrip2 * 10); SetParam((ushort)(mode + 5), data); + break; + case csConstData.UART_PARAM_LIST.LOW_CAPACITY: + data = new short[1]; + data[0] = aParam.LowSocWarning; SetParam((ushort)(mode + 0), data); + break; + case csConstData.UART_PARAM_LIST.DEFAULT_PARAM: // Default Parameter + int i = 0; + + Forms.fmxWait WaitForm = new Forms.fmxWait(); + WaitForm.StartPosition = FormStartPosition.CenterScreen; + + try + { + data = new short[1]; + + i = csConstData.UART_PARAM_LIST.CELL_UNDER_VOLTAGE; + data[0] = 0; SetParam((ushort)(i + 0), data); + data[0] = 0; SetParam((ushort)(i + 1), data); + data[0] = 0; SetParam((ushort)(i + 2), data); + i = csConstData.UART_PARAM_LIST.PACK_UNDER_VOLTAGE; + data[0] = 0; SetParam((ushort)(i + 0), data); + data[0] = 0; SetParam((ushort)(i + 1), data); + data[0] = 0; SetParam((ushort)(i + 2), data); + i = csConstData.UART_PARAM_LIST.CELL_OVER_VOLTAGE; + data[0] = 0; SetParam((ushort)(i + 0), data); + data[0] = 0; SetParam((ushort)(i + 1), data); + data[0] = 0; SetParam((ushort)(i + 2), data); + i = csConstData.UART_PARAM_LIST.PACK_OVER_VOLTAGE; + data[0] = 0; SetParam((ushort)(i + 0), data); + data[0] = 0; SetParam((ushort)(i + 1), data); + data[0] = 0; SetParam((ushort)(i + 2), data); + + i = csConstData.UART_PARAM_LIST.CHG_OVER_CURRENT; + data[0] = 0; SetParam((ushort)(i - 2), data); + data[0] = 0; SetParam((ushort)(i + 0), data); + data[0] = 0; SetParam((ushort)(i + 2), data); + data[0] = 0; SetParam((ushort)(i + 5), data); + data[0] = 0; SetParam((ushort)(i + 8), data); + data[0] = 0; SetParam((ushort)(i + 9), data); + + i = csConstData.UART_PARAM_LIST.DCH_OVER_CURRENT; + data[0] = 0; SetParam((ushort)(i - 2), data); + data[0] = 0; SetParam((ushort)(i + 0), data); + data[0] = 0; SetParam((ushort)(i + 2), data); + data[0] = 0; SetParam((ushort)(i + 5), data); + data[0] = 0; SetParam((ushort)(i + 8), data); + data[0] = 0; SetParam((ushort)(i + 9), data); + + i = csConstData.UART_PARAM_LIST.CHG_LOW_TEMPERATURE; + data[0] = 0; SetParam((ushort)(i + 0), data); + data[0] = 0; SetParam((ushort)(i + 1), data); + data[0] = 0; SetParam((ushort)(i + 2), data); + i = csConstData.UART_PARAM_LIST.CHG_HIGH_TEMPERATURE; + data[0] = 0; SetParam((ushort)(i + 0), data); + data[0] = 0; SetParam((ushort)(i + 1), data); + data[0] = 0; SetParam((ushort)(i + 2), data); + i = csConstData.UART_PARAM_LIST.DCH_LOW_TEMPERATURE; + data[0] = 0; SetParam((ushort)(i + 0), data); + data[0] = 0; SetParam((ushort)(i + 1), data); + data[0] = 0; SetParam((ushort)(i + 2), data); + i = csConstData.UART_PARAM_LIST.DCH_HIGH_TEMPERATURE; + data[0] = 0; SetParam((ushort)(i + 0), data); + data[0] = 0; SetParam((ushort)(i + 1), data); + data[0] = 0; SetParam((ushort)(i + 2), data); + + i = csConstData.UART_PARAM_LIST.LOW_CAPACITY; + data[0] = 0; SetParam((ushort)(i + 0), data); + + i = csConstData.UART_PARAM_LIST.ENV_LOW_TEMPERATURE; + data[0] = 0; SetParam((ushort)(i + 0), data); + data[0] = 0; SetParam((ushort)(i + 1), data); + data[0] = 0; SetParam((ushort)(i + 2), data); + i = csConstData.UART_PARAM_LIST.ENV_HIGH_TEMPERATURE; + data[0] = 0; SetParam((ushort)(i + 0), data); + data[0] = 0; SetParam((ushort)(i + 1), data); + data[0] = 0; SetParam((ushort)(i + 2), data); + } + catch (Exception) + { + + } + break; + case 15: // Capcity change + data = new short[1]; + i = csConstData.UART_PARAM_LIST.DESIGN_CAPACITY; + data[0] = (short)aCalib.CapCalib.DesignCapacity; SetParam((ushort)(i + 0), data); + i = csConstData.UART_PARAM_LIST.SOC_VALUE; + data[0] = (short)aCalib.CapCalib.SocValue; SetParam((ushort)(i + 0), data); + break; + case 16: // Charge Mode + data = new short[1]; + i = csConstData.UART_CALIB_ADDR_LIST.CHAGE_MODE; + data[0] = (short)aCalib.ChaMode.Mode; SetParam((ushort)(i + 0), data); + data[0] = (short)aCalib.ChaMode.Value; SetParam((ushort)(i + 1), data); + break; + case 17: // BMS DateTime Set + data = new short[2]; + i = csConstData.UART_CALIB_ADDR_LIST.BMS_DATETIME; + data[0] = (short)aCalib.BmsDateTime.sValue[0]; + data[1] = (short)aCalib.BmsDateTime.sValue[1]; SetParam((ushort)(i + 0), data); + break; + case 18: + data = new short[1]; + i = csConstData.UART_CALIB_ADDR_LIST.ANTI_THEFT_GYRO; + data[0] = (short)aCalib.AntiTheft.GyroScope; SetParam((ushort)(i + 0), data); + break; + case 19: // Clear Protect + data = new short[1]; + i = csConstData.UART_CALIB_ADDR_LIST.ANTI_THEFT_GYRO; + data[0] = (short)0; SetParam((ushort)(i + 0), data); + data[0] = (short)aCalib.AntiTheft.GyroScope; SetParam((ushort)(i + 0), data); + break; + case 20: + data = new short[1]; + i = csConstData.UART_CALIB_ADDR_LIST.ANTI_THEFT_COMM; + data[0] = (short)aCalib.AntiTheft.Comm; SetParam((ushort)(i + 0), data); + break; + case 21: // Cell Balancing Voltage + data = new short[1]; + i = csConstData.UART_CALIB_ADDR_LIST.BAL_VOLT; + data[0] = (short)aCalib.BalCalib.Volt; SetParam((ushort)(i + 0), data); + break; + case 22: // Cell Balancing Diff + data = new short[1]; + i = csConstData.UART_CALIB_ADDR_LIST.BAL_DIFF; + data[0] = (short)aCalib.BalCalib.Diff; SetParam((ushort)(i + 0), data); + break; + default: + break; + } + } + + #endregion + + #region RX BUFFERING + + private const int BUFFER_SIZE = 512; + + private readonly byte[] rBuffer = new byte[BUFFER_SIZE]; + private int rBufStart = 0; + private int rBufEnd = 0; + + private void PutBuff(byte c) + { + rBuffer[rBufStart++] = c; + rBufStart %= BUFFER_SIZE; + + if (rBufStart == rBufEnd) + { + rBufEnd++; + rBufEnd %= BUFFER_SIZE; + } + } + + private int GetBuff() + { + int result = 0; + + if (rBufStart != rBufEnd) + { + result = 0x0100 + rBuffer[rBufEnd++]; + rBufEnd %= BUFFER_SIZE; + } + return result; + } + + private void FlushBuff() + { + rBufStart = rBufEnd = 0; + } + + #endregion + + #region TX BUFFERING + + private byte[] MakeWriteRegData(ushort DevID, ushort WriteAddr, ushort WriteLen, ref ushort[] WriteData) + { + byte[] wData = null; + + if (WriteLen > 0) + { + + } + + return wData; + } + + private string MakeCheckSum(byte[] sData, int len) + { + string result = ""; + int checksum = 0; + + for (int i = 0; i < len; i++) + { + checksum += sData[i + 1]; + } + + checksum = ~checksum + 1; + + result = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum); + + return result; + } + + private byte[] MakeTxDataVision(ref bool wData) + { + byte[] sData = null; + + rFlag2 = 0; + + if ((uartTxBuff != null) && (uartTxBuff.CheckBuff())) + { + TUartTRxData sBuff = uartTxBuff.GetBuff(); + if (sBuff != null) + { + sData = sBuff.data; + wData = true; + rFlag = true; + rFlag2 = sBuff.type; + } + } + else if (wFlag == 2) + { + sData = csSerialCommFunction.MakeWriteCoilData((ushort)SystemId, WriteRegAddr, WriteCoilRegData); + if (wFlag != 0) wFlag = 0; + rFlag = true; + } + else if (wFlag == 3) + { + sData = WriteRegData; + if (wFlag != 0) wFlag = 0; + rFlag = true; + } + else if (wFlag == 4) + { + sData = csSerialCommFunction.MakeReadRegisterData((ushort)SystemId, csSerialCommFunction.READ_HOLDING_REG, ReadRegAddr, ReadRegLen); + if (wFlag != 0) wFlag = 0; + rFlag = true; + } + else + { + if (UartPolling && AutoUartTx) + { + ushort sCmd; + switch (addr_ch) + { + case 0: + addr_ch = 1; + RequestRegAddr = 0x0000; //Byul Init 0x0000 + RequestRegLen = 0x0040; + sCmd = csSerialCommFunction.READ_HOLDING_REG; + rFlag = true; + break; + case 1: + addr_ch = 2; + RequestRegAddr = 0x0040; + RequestRegLen = 0x0040; + sCmd = csSerialCommFunction.READ_HOLDING_REG; + rFlag = true; + break; + case 2: + addr_ch = 3; + RequestRegAddr = 0x0080; + RequestRegLen = 0x0040; + sCmd = csSerialCommFunction.READ_HOLDING_REG; + rFlag = true; + break; + case 3: + if (Config.ModuleQty > 1) + { + SystemId++; + if (SystemId > Config.ModuleQty) + { + SystemId = 1; + } + } + addr_ch = 0; + sCmd = csSerialCommFunction.NO_CMD; + rFlag = false; + break; + default: + addr_ch = 0; + RequestRegAddr = 0x0000; //Byul Init 0x0000 + RequestRegLen = 100; + sCmd = csSerialCommFunction.READ_HOLDING_REG; + break; + } + if (sCmd == csSerialCommFunction.NO_CMD) + { + sData = null; + } + else + { + sData = csSerialCommFunction.MakeReadRegisterData((ushort)SystemId, sCmd, RequestRegAddr, RequestRegLen); + } + } + } + return sData; + } + + #endregion + + #region COMM THREAD + + private readonly byte[] ReadBuf = new byte[BUFFER_SIZE]; + ushort rPosition = 0; + bool BuffStart = false; + + private void RecvPacketInit() + { + BuffStart = false; + rPosition = 0; + } + + private void uartCommThread() + { + int RecvTimeout = Config.RecvWaitTime; + int getData = 0; + byte cData = 0; + int TimeOutCount = 0; + + StartSend: + while (SerialPortThreadEnd == false) + { + if ((sPort == null) || (sPort.IsOpen == false)) continue; + + bool wMode = false; + byte[] txData = MakeTxDataVision(ref wMode); + if (txData != null) + { + FlushBuff(); + sPort.Write(txData, 0, txData.Length); + OnPrint?.Invoke(this, csLog.trx_data_print(txData, txData.Length, 0)); + } + + if (rFlag == true) + { + RecvPacketInit(); + DateTime rDateTime = DateTime.Now; + + while (true) + { + DateTime nDateTime = rDateTime.AddMilliseconds(RecvTimeout); + if (nDateTime < DateTime.Now) break; + + if (((getData = GetBuff()) & 0x0100) != 0x0000) + { + rDateTime = DateTime.Now; + cData = (byte)(getData & 0x00FF); + if (rPosition >= BUFFER_SIZE) RecvPacketInit(); + + if (BuffStart == false) + { + if ((cData == (byte)SystemId) || (cData == (byte)0x7F)) + { + rPosition = 0; + ReadBuf[rPosition++] = cData; + BuffStart = true; + } + } + else + { + ReadBuf[rPosition++] = cData; + + switch (csSerialCommFunction.ModbusPacketFromSlaveCheck(ReadBuf, rPosition)) + { + case 0: // Need more data + break; + case 1: // Packet OK, no error + OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1)); + + TimeOutCount = 0; + + int mID = ReadBuf[0]; + if (mID > 0) mID--; + + SystemData.CommFail = false; + SystemData.ShelfCommFail = false; + + if (rFlag2 == 0) + { + short[] result_code = csSerialCommFunction124050.SerialRxProcess(ReadBuf, RequestRegAddr, rPosition, ref SystemData); + + OnUpdate?.Invoke(this, ref SystemData); + } + else + { + rFlag2 = 0; + wMode = false; + WriteRegAddr = 0; + if (OnDataRecv != null) + { + byte[] adata = new byte[rPosition + 1]; + for (int j = 0; j < adata.Length; j++) { adata[j] = ReadBuf[j]; } + OnDataRecv(adata); + } + } + rFlag = false; + Thread.Sleep(100); + goto StartSend; + case 2: // Fw Update Packet OK + OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1)); + + TimeOutCount = 0; + rFlag = false; + if (OnDataRecv != null) + { + byte[] adata = new byte[rPosition + 1]; + for (int j = 0; j < adata.Length; j++) + { + adata[j] = ReadBuf[j]; + } + OnDataRecv(adata); + } + goto StartSend; + case -1: // Packet error + RecvPacketInit(); + Thread.Sleep(100); + goto StartSend; + default: + break; + } + } + } + else + { + Thread.Sleep(1); + } + } + + if (rPosition > 0) + { + Thread.Sleep(1); + } + else + { + WriteRegAddr = 0; + TimeOutCount++; + if (TimeOutCount >= 5) + { + TimeOutCount = 5; + //SystemData[0].CommFail = true; + if (SystemData.ShelfCommFail == false) + { + SystemData.ShelfCommFail = true; + csUtils.DataInit(Config, ref SystemData); + } + } + Thread.Sleep(100); + } + OnUpdate?.Invoke(this, ref SystemData); + Thread.Sleep(1); + } + else + { + Thread.Sleep(100); + } /* if (rFlag == true) */ + rPosition = 0; + } + } + + #endregion + } +} diff --git a/LFP_Manager/Threads/CsUartThreadDelta.cs b/LFP_Manager/Threads/CsUartThreadDelta.cs new file mode 100644 index 0000000..2a690b4 --- /dev/null +++ b/LFP_Manager/Threads/CsUartThreadDelta.cs @@ -0,0 +1,574 @@ +using System; + +using System.Threading; +using System.IO.Ports; +using System.Windows.Forms; + +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Utils; +using DevExpress.XtraGauges.Core.Model; + +namespace LFP_Manager.Threads +{ + #region DELEGATE + public delegate void UartDataUpdateRS485(object sender, ref DeviceSystemData[] aSystemData); + public delegate void UartDataRecvRS485(byte[] data); + public delegate void UartDataPrintRS485(object sender, string msg); + #endregion + + class CsUartThreadDelta + { + #region VARIABLES + + private readonly CommConfig Config; + private DeviceSystemData[] SystemData; + private Thread serialComm = null; + private SerialPort sPort = null; + private bool SerialPortThreadEnd = true; + + public int ModuleID = 1; + private bool UartPolling = false; + private bool AutoUartTx = true; + + private int addr_ch = 0; + private ushort RequestRegAddr = 0x0000; //Byul Init 0x0000 + private ushort RequestRegLen = 50; + private bool rFlag = false; + private int wFlag = 0; + private int rFlag2 = 0; + + private ushort ExtReqRegAddr = 0x0000; + + private ushort WriteRegAddr = 0x0000; //Byul Init 0x0000 + private short WriteCoilRegData = 0; + private byte[] WriteRegData; + private short WriteParamRegData; + + private TUartTxBuff UartTxBuff; + + public event UartDataUpdateRS485 OnUpdate = null; + public event UartDataRecvRS485 OnDataRecv = null; + public event UartDataPrintRS485 OnPrint = null; + + #endregion + + #region CONSTRUCTORS + + public CsUartThreadDelta(int mID, CommConfig aConfig, ref DeviceSystemData[] aSystemData) + { + ModuleID = mID; + Config = aConfig; + SystemData = aSystemData; + + UartTxBuff = new TUartTxBuff(); + + serialComm = new Thread(uartCommThread); + } + + public void disposeThread() + { + if (sPort != null) + { + if (sPort.IsOpen) + { + sPort.Close(); + } + sPort = null; + } + SerialPortThreadEnd = true; + if (serialComm != null) + { + if (serialComm.IsAlive) + { + serialComm.Abort(); + } + serialComm = null; + } + } + + public bool Start(ref CommConfig aConfig, int mID, bool aPolling) + { + bool result = false; + + ModuleID = mID; + UartPolling = aPolling; + + if (Open(aConfig.UartPort, 9600)) //Byul Init 9600 + { + SerialPortThreadEnd = false; + serialComm.Start(); + result = true; + } + return result; + } + + public void Stop() + { + SerialPortThreadEnd = true; + Close(); + } + + #endregion + + #region COMMPORT CONTROLS + + private void sDataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) + { + byte[] sRead = new byte[1024]; + int rLen = 0; + + try + { + rLen = ((SerialPort)sender).Read(sRead, 0, 1024); + + for (int i = 0; i < rLen; i++) + { + PutBuff(sRead[i]); + } + } + catch (Exception) + { + + } + } + + private void sErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e) + { + // + //csMakeDataFunction.SetData() + } + + private void sPinChanged(object sender, System.IO.Ports.SerialPinChangedEventArgs e) + { + // + } + + private bool Open(string cPort, int cBaudrate) + { + sPort = new SerialPort(); + sPort.PortName = cPort; + sPort.BaudRate = cBaudrate; + sPort.DataReceived += sDataReceived; + sPort.ErrorReceived += sErrorReceived; + sPort.PinChanged += sPinChanged; + + try + { + sPort.Open(); + } + catch (Exception ex) + { + throw new Exception("Error Open - " + ex.Message); + } + + return sPort.IsOpen; + } + + private void Close() + { + if (sPort != null) + { + if (sPort.IsOpen) + { + sPort.Close(); + } + sPort = null; + } + } + + #endregion + + #region PUBLIC FUNCTION + + public void SetPolling(bool flag, int mID, ref DeviceSystemData[] aSystemData) + { + ModuleID = mID; + UartPolling = flag; + SystemData = aSystemData; + SystemData[0].mNo = ModuleID; + } + + public void SetAutoTx(bool autoTx) + { + AutoUartTx = autoTx; + } + + public void SetWriteCoilReg(ushort WriteAddr, short WriteData) + { + wFlag = 2; + WriteRegAddr = WriteAddr; + WriteCoilRegData = WriteData; + + for (int i = 0; i < 500; i += 10) + { + Thread.Sleep(10); + Application.DoEvents(); + } + } + public void SetWriteReg(ushort WriteAddr, byte[] WriteData, bool ReplyFlag, int type) + { + WriteRegAddr = WriteAddr; + + TUartTRxData uartTRxData = new TUartTRxData(); + uartTRxData.type = type; + //uartTRxData.data = csSerialCommFunction.MakeWriteRegisterData((ushort)SystemId, WriteRegAddr, WriteData); + uartTRxData.data = WriteData; + uartTRxData.length = uartTRxData.data.Length; + + UartTxBuff?.PutBuff(uartTRxData); + } + + public void SetParam(ushort WriteAddr, short WriteData) + { + byte[] sData = CsSerialCommFunctionDelta.MakeWriteRegisterData((ushort)ModuleID, WriteAddr, WriteData); + + if (sData != null) + { + TUartTRxData aData = new TUartTRxData(); + aData.length = sData.Length; + aData.data = sData; + + UartTxBuff.PutBuff(aData); + } + } + + public void SetReadWriteParam(ushort WriteAddr, short WriteData) + { + byte[] sData = CsSerialCommFunctionDelta.MakeReadWriteRegisterData((ushort)ModuleID, WriteAddr, WriteData); + + if (sData != null) + { + TUartTRxData aData = new TUartTRxData(); + aData.length = sData.Length; + aData.data = sData; + + ExtReqRegAddr = WriteAddr; + + UartTxBuff.PutBuff(aData); + } + } + + #endregion + + #region RX BUFFERING + + private const int BUFFER_SIZE = 512; + + private readonly byte[] rBuffer = new byte[BUFFER_SIZE]; + private int rBufStart = 0; + private int rBufEnd = 0; + + private void PutBuff(byte c) + { + rBuffer[rBufStart++] = c; + rBufStart %= BUFFER_SIZE; + + if (rBufStart == rBufEnd) + { + rBufEnd++; + rBufEnd %= BUFFER_SIZE; + } + } + + private int GetBuff() + { + int result = 0; + + if (rBufStart != rBufEnd) + { + result = 0x0100 + rBuffer[rBufEnd++]; + rBufEnd %= BUFFER_SIZE; + } + return result; + } + + private void FlushBuff() + { + rBufStart = rBufEnd = 0; + } + + #endregion + + #region TX BUFFERING + + private byte[] MakeWriteRegData(ushort DevID, ushort WriteAddr, ushort WriteLen, ref ushort[] WriteData) + { + byte[] wData = null; + + if (WriteLen > 0) + { + + } + + return wData; + } + + private string MakeCheckSum(byte[] sData, int len) + { + string result = ""; + int checksum = 0; + + for (int i = 0; i < len; i++) + { + checksum += sData[i + 1]; + } + + checksum = ~checksum + 1; + + result = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum); + + return result; + } + + private byte[] MakeTxDataDelta(bool wData) + { + byte[] sData = null; + + if ((UartTxBuff != null) && (UartTxBuff.CheckBuff())) + { + TUartTRxData sBuff = UartTxBuff.GetBuff(); + if (sBuff != null) + { + sData = sBuff.data; + wData = true; + rFlag = true; + rFlag2 = sBuff.type; + + RequestRegAddr = ExtReqRegAddr; + } + } + else + { + if (AutoUartTx && UartPolling) + { + ushort sCmd; + switch (addr_ch) + { + case 0: // Battery Status Data + addr_ch = 1; + RequestRegAddr = 0x0FFF; //Byul Init 0x0000 + RequestRegLen = 0x27; + sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x04 + rFlag = true; + break; + case 1: // Gyroscope Data + addr_ch = 2; + RequestRegAddr = 0x4000; + RequestRegLen = 7; + sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x17 + rFlag = true; + break; + case 2: + addr_ch = 3; + RequestRegAddr = 0x3000; + RequestRegLen = 3; + sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x19 + rFlag = true; + break; + case 3: + addr_ch = 4; + RequestRegAddr = 0x0000; + RequestRegLen = 1; + sCmd = CsSerialCommFunctionDelta.READ_DEV_ID; // Command 0x2B + rFlag = true; + break; + case 4: + addr_ch = 5; + RequestRegAddr = 100; + RequestRegLen = 30; + sCmd = CsSerialCommFunctionDelta.READ_HOLDING_REG; // Command 0x03 + rFlag = true; + break; + case 5: + if (Config.ModuleQty > 1) + { + ModuleID++; + if (ModuleID > Config.ModuleQty) + { + ModuleID = 1; + } + } + addr_ch = 0; + sCmd = CsSerialCommFunctionDelta.NO_CMD; + rFlag = false; + break; + default: + addr_ch = 0; + RequestRegAddr = 0x0FFF; //Byul Init 0x0000 + RequestRegLen = 27; + sCmd = CsSerialCommFunctionDelta.READ_INPUT_REG; // Command 0x04 + rFlag = true; + break; + } + if (sCmd == CsSerialCommFunctionDelta.NO_CMD) + { + sData = null; + } + else if (sCmd == CsSerialCommFunctionDelta.READ_DEV_ID) + { + sData = CsSerialCommFunctionDelta.MakeReadDevIdRegReqData((ushort)ModuleID, sCmd, RequestRegAddr); + } + else + { + sData = CsSerialCommFunctionDelta.MakeReadRegisterData((ushort)ModuleID, sCmd, RequestRegAddr, RequestRegLen); + } + } + } + return sData; + } + + #endregion + + #region COMM THREAD + + private readonly byte[] ReadBuf = new byte[BUFFER_SIZE]; + ushort rPosition = 0; + bool BuffStart = false; + + private void RecvPacketInit() + { + BuffStart = false; + rPosition = 0; + } + + private void uartCommThread() + { + int RecvTimeout = Config.RecvWaitTime; + int getData = 0; + byte cData = 0; + int[] TimeOutCount = new int[csConstData.SystemInfo.MAX_MODULE_SIZE]; + + StartSend: + while (SerialPortThreadEnd == false) + { + if ((sPort == null) || (sPort.IsOpen == false)) continue; + + FlushBuff(); + byte[] txData = MakeTxDataDelta(false); + if (sPort == null) return; + if (txData != null) + { + sPort.Write(txData, 0, txData.Length); + OnPrint?.Invoke(this, csLog.trx_data_print(txData, txData.Length, 0)); + } + + if (rFlag == true) + { + DateTime rDateTime = DateTime.Now; + + RecvPacketInit(); + + while (true) + { + DateTime nDateTime = rDateTime.AddMilliseconds(RecvTimeout); + if (nDateTime < DateTime.Now) break; + + if (((getData = GetBuff()) & 0x0100) != 0x0000) + { + rDateTime = DateTime.Now; + + cData = (byte)(getData & 0x00FF); + + if (rPosition >= BUFFER_SIZE) RecvPacketInit(); + + if (BuffStart == false) + { + if ((cData == (byte)ModuleID) || (cData == (byte)0x7F)) + { + rPosition = 0; + ReadBuf[rPosition++] = cData; + BuffStart = true; + } + } + else + { + ReadBuf[rPosition++] = cData; + + switch (CsSerialCommFunctionDelta.ModbusPacketFromSlaveCheck(ReadBuf, rPosition)) + { + case 0: // Need more data + break; + case 1: // Packet OK, no error + OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1)); + + TimeOutCount[ModuleID - 1] = 0; + + int mID = ReadBuf[0]; + if (mID > 0) mID--; + + SystemData[mID].CommFail = false; + SystemData[mID].ShelfCommFail = false; + short[] result_code = CsSerialCommFunctionDelta.SerialRxProcess(ReadBuf, RequestRegAddr, rPosition, ref SystemData[mID]); + + OnUpdate?.Invoke(this, ref SystemData); + + Thread.Sleep(5); + goto StartSend; + case 2: // Fw Update Packet OK + OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1)); + + TimeOutCount[ModuleID - 1] = 0; + rFlag = false; + if (OnDataRecv != null) + { + byte[] adata = new byte[rPosition + 1]; + for (int j = 0; j < adata.Length; j++) + { + adata[j] = ReadBuf[j]; + } + OnDataRecv(adata); + } + goto StartSend; + case -1: // Packet error + RecvPacketInit(); + Thread.Sleep(100); + goto StartSend; + default: + break; + } + } + Thread.Sleep(1); + } + else + { + Thread.Sleep(1); + } + } + + if (rPosition > 0) + { + OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1)); + + Thread.Sleep(1); + } + else + { + TimeOutCount[ModuleID - 1]++; + if (TimeOutCount[ModuleID - 1] >= 10) + { + TimeOutCount[ModuleID - 1] = 10; + //SystemData[0].CommFail = true; + if (SystemData[ModuleID - 1].ShelfCommFail == false) + { + SystemData[ModuleID - 1].ShelfCommFail = true; + csUtils.DataInit(Config, ref SystemData[ModuleID - 1]); + } + } + Thread.Sleep(100); + } + OnUpdate?.Invoke(this, ref SystemData); + Thread.Sleep(1); + } + else + { + Thread.Sleep(10); + } /* if (rFlag == true) */ + rPosition = 0; + Thread.Sleep(100); + } + } + + #endregion + } +} diff --git a/LFP_Manager/Threads/csDbThread.cs b/LFP_Manager/Threads/csDbThread.cs new file mode 100644 index 0000000..b2e7ab5 --- /dev/null +++ b/LFP_Manager/Threads/csDbThread.cs @@ -0,0 +1,315 @@ +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Utils; +using System; +using System.Data; +using System.Data.SQLite; +using System.Threading; +using System.Windows.Forms; + +namespace LFP_Manager.Threads +{ + public delegate void DbDataPrint(object sender, string msg); + + class csDbThread + { + #region VARIABLES + + private CommConfig Config = new CommConfig(); + private DeviceSystemData[] SystemData; + private short[] Status, oldStatus; + + private Thread dbProc = null; + + private bool Active = false; + + private int mQty = 1; + + private int ModuleID = 1; + + //////////////////////////////////////// + private bool DbThreadEnd = true; + + public event DbDataPrint OnPrint = null; + + #endregion + + #region CONSTRUCTORS + + public csDbThread(int mID, CommConfig aConfig, DeviceSystemData[] aSystemData) + { + ModuleID = mID; + Status = new short[2]; + oldStatus = new short[2]; + Config = aConfig; + SystemData = aSystemData; + + dbProc = new Thread(dbThreadProcess); + } + + public void disposeThread() + { + DbThreadEnd = true; + if (dbProc != null) + { + if (dbProc.IsAlive) + { + dbProc.Abort(); + } + dbProc = null; + } + } + + public unsafe bool Start(int mID, CommConfig aConfig) + { + bool result = false; + + ModuleID = mID; + Config = aConfig; + switch (Config.CommType) + { + case csConstData.CommType.COMM_UART: // RS-232 + mQty = 1; + break; + case csConstData.CommType.COMM_RS485: // RS-485 + mQty = Config.ModuleQty; + break; + case csConstData.CommType.COMM_SNMP: // SNMP + mQty = 1; + break; + default: + mQty = 1; + break; + } + + // DB Create with Path Create + csHistoryFunction.DbCreate(System.IO.Path.GetDirectoryName(Application.ExecutablePath)); + + try + { + DbThreadEnd = false; + dbProc.Start(); + + Active = true; + } + catch (Exception ex) + { + OnPrint?.Invoke(this, ex.Message); + } + + return result; + } + + public void Stop() + { + DbThreadEnd = true; + + Active = false; + } + + public void UpdateStatus(short st1, short st2) + { + Status[0] = st1; + Status[1] = st2; + } + + #endregion + + #region UPDATE DATA + + public void UpdateData(int mID, DeviceSystemData[] aSystemData) + { + ModuleID = mID; + SystemData = aSystemData; + } + + #endregion + + #region MAKE ALARM HISTORY + + private void CheckAlarm() + { + bool[] Data1 = csUtils.Int16ToBitArray((short)Status[0]); + bool[] Data2 = csUtils.Int16ToBitArray((short)Status[1]); + bool[] oData1 = csUtils.Int16ToBitArray((short)oldStatus[0]); + bool[] oData2 = csUtils.Int16ToBitArray((short)oldStatus[1]); + + // Cell Over Voltage + if (oData2[0] != Data2[0]) + { + if (Data2[0] == true) + { + IDInsert("", csDbConstData.DB_ALARM.CELL_UNDER_VOLTAGE, csDbConstData.DB_ALARM.FLAG_TRIP); + } + else + { + if (oData1[0] != Data1[0]) + { + if (Data1[0] == true) + IDInsert("", csDbConstData.DB_ALARM.CELL_UNDER_VOLTAGE, csDbConstData.DB_ALARM.FLAG_WARNING); + else + IDInsert("", csDbConstData.DB_ALARM.CELL_UNDER_VOLTAGE, csDbConstData.DB_ALARM.FLAG_RELEASE); + } + else + { + if (Data1[0] == false) + IDInsert("", csDbConstData.DB_ALARM.CELL_UNDER_VOLTAGE, csDbConstData.DB_ALARM.FLAG_RELEASE); + } + } + } + else + { + if (oData1[0] != Data1[0]) + { + if (Data1[0] == true) + IDInsert("", csDbConstData.DB_ALARM.CELL_UNDER_VOLTAGE, csDbConstData.DB_ALARM.FLAG_WARNING); + else + IDInsert("", csDbConstData.DB_ALARM.CELL_UNDER_VOLTAGE, csDbConstData.DB_ALARM.FLAG_RELEASE); + } + } + oldStatus = Status; + } + + #endregion + + #region DB INSERT DATA + private void IDInsert(string mPath, int aCode, int fCode) + { + //string dbFilename = mPath + csDbConstData.DataBase.FileName; + string dbFilename = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + csDbConstData.DataBase.FileName; + + // Open database + string strConn = @"Data Source=" + dbFilename; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = "BEGIN;"; //명시적 트렌젝션 시작 + command.ExecuteNonQuery(); + + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = "INSERT INTO " + csDbConstData.DataBase.TableName + "(HTime, model, sno, alarm_name, alarm_code, flag_name, flag, param1, param2) " + + " Values (@HTime, @model, @sno, @alarm_name, @alarm_code, @flag_name, @flag, @param1, @param2);"; + SQLiteParameter[] p = new SQLiteParameter[] + { + new SQLiteParameter("@HTime", DbType.DateTime), + new SQLiteParameter("@model", DbType.String), + new SQLiteParameter("@sno", DbType.Int16), + new SQLiteParameter("@alarm_name", DbType.String), + new SQLiteParameter("@alarm_code", DbType.Int16), + new SQLiteParameter("@flag_name", DbType.String), + new SQLiteParameter("@flag", DbType.Int16), + new SQLiteParameter("@param1", DbType.Decimal), + new SQLiteParameter("@param2", DbType.Decimal), + }; // end SQLiteParameter + + command.Parameters.AddRange(p); + + int result = 0; + + p[0].Value = DateTime.Now; // DateTime + p[1].Value = "AAA"; // Model Name + p[2].Value = 1; // System No + p[3].Value = csDbConstData.DB_ALARM.ALARM_NAME[aCode]; // alarm_name + p[4].Value = aCode; // alarm_code + p[5].Value = csDbConstData.DB_ALARM.FLAG_NAME[fCode]; // flag_name + p[6].Value = fCode; // flag_code + p[7].Value = 0.0; // param1 + p[8].Value = 0.0; // param2 + + try + { + result = command.ExecuteNonQuery(); + } + catch (Exception) + { + } + command.CommandText = "COMMIT;"; //명시적 트렌젝션 시작 + } + } + catch (Exception) + { + //MessageBox.Show(e.ToString()); + } + finally + { + connection.Close(); + } + } + } + + #endregion + + #region DB THREAD + + unsafe private void dbThreadProcess() + { + DateTime bakDateTime = DateTime.Now; + int ss = Config.DbLogPeriod; + + while (DbThreadEnd == false) + { + if (Active) + { + DateTime cDate = DateTime.Now; + + if ( + ((bakDateTime.Minute != cDate.Minute) + || (bakDateTime.Second != cDate.Second)) + && ((cDate.Second % ss) == 0) + ) + { + // Database Log Process + try + { + string ModelName; + + ModelName = csConstData.MODEL_STR[Config.UartModelIndex]; + csDbUtils.LogDbCreate(ModelName); + + switch (Config.CommType) + { + case csConstData.CommType.COMM_UART: + SystemData[ModuleID - 1].mNo = ModuleID; + csDbProcess.BmsLogDataInsert(ModelName, ref SystemData[ModuleID - 1], cDate, 1000); + break; + case csConstData.CommType.COMM_RS485: + if (mQty > 1) + { + for (int i = 0; i < mQty; i++) + { + SystemData[i].mNo = i + 1; + csDbProcess.BmsLogDataInsert(ModelName, ref SystemData[i], cDate, 1000); + } + } + else + { + SystemData[ModuleID - 1].mNo = ModuleID; + csDbProcess.BmsLogDataInsert(ModelName, ref SystemData[ModuleID - 1], cDate, 1000); + } + break; + case csConstData.CommType.COMM_SNMP: + SystemData[ModuleID - 1].mNo = ModuleID; + csDbProcess.BmsLogDataInsert(ModelName, ref SystemData[ModuleID - 1], cDate, 1000); + break; + default: + break; + } + } + catch (Exception) + { + } + bakDateTime = cDate; + } + } + Thread.Sleep(100); + } + } + + #endregion + } +} diff --git a/LFP_Manager/Threads/csUartThread.cs b/LFP_Manager/Threads/csUartThread.cs new file mode 100644 index 0000000..b236a65 --- /dev/null +++ b/LFP_Manager/Threads/csUartThread.cs @@ -0,0 +1,776 @@ +using System; + +using System.Threading; +using System.IO.Ports; +using System.Windows.Forms; + +using LFP_Manager.DataStructure; +using LFP_Manager.Function; +using LFP_Manager.Utils; +using DevExpress.XtraGauges.Core.Model; + +namespace LFP_Manager.Threads +{ + #region DELEGATE + public delegate void UartDataUpdate(object sender, ref DeviceSystemData aSystemData); + public delegate void UartDataRecv(byte[] data); + public delegate void UartDataPrint(object sender, string msg); + #endregion + + class csUartThread + { + #region VARIABLES + + private readonly CommConfig Config; + private DeviceSystemData SystemData; + private Thread serialComm = null; + private SerialPort sPort = null; + private bool SerialPortThreadEnd = true; + + public int SystemId = 0; + private bool UartPolling = false; + private bool AutoUartTx = true; + + private int addr_ch = 0; + private ushort RequestRegAddr = 0x0000; //Byul Init 0x0000 + private ushort RequestRegLen = 50; + private bool rFlag = false; + private int rFlag2 = 0; + private int wFlag = 0; + + private ushort ReadRegAddr = 0x0000; //Byul Init 0x0000 + private ushort ReadRegLen = 0x0000; //Byul Init 0x0000 + + private ushort WriteRegAddr = 0x0000; //Byul Init 0x0000 + private short WriteCoilRegData = 0; + private byte[] WriteRegData; + + private TUartTxBuff uartTxBuff = null; + + public event UartDataUpdate OnUpdate = null; + public event UartDataRecv OnDataRecv = null; + public event UartDataPrint OnPrint = null; + + #endregion + + #region CONSTRUCTORS + + public csUartThread(int sId, CommConfig aConfig, ref DeviceSystemData aSystemData) + { + SystemId = sId; + Config = aConfig; + SystemData = aSystemData; + + uartTxBuff = new TUartTxBuff(); + + serialComm = new Thread(uartCommThread); + } + + public void disposeThread() + { + if (sPort != null) + { + if (sPort.IsOpen) + { + sPort.Close(); + } + sPort = null; + } + SerialPortThreadEnd = true; + if (serialComm != null) + { + if (serialComm.IsAlive) + { + serialComm.Abort(); + } + serialComm = null; + } + } + + public bool Start(ref CommConfig aConfig, int sId, bool aPolling) + { + bool result = false; + + SystemId = sId; + UartPolling = aPolling; + + if (Open(aConfig.UartPort, 115200)) //Byul Init 9600 + { + SerialPortThreadEnd = false; + serialComm.Start(); + result = true; + } + return result; + } + + public void Stop() + { + SerialPortThreadEnd = true; + Close(); + } + + #endregion + + #region COMMPORT CONTROLS + + private void sDataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) + { + byte[] sRead = new byte[1024]; + int rLen = 0; + + try + { + rLen = ((SerialPort)sender).Read(sRead, 0, 1024); + + for (int i = 0; i < rLen; i++) + { + PutBuff(sRead[i]); + } + } + catch (Exception) + { + + } + } + + private void sErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e) + { + // + //csMakeDataFunction.SetData() + } + + private void sPinChanged(object sender, System.IO.Ports.SerialPinChangedEventArgs e) + { + // + } + + private bool Open(string cPort, int cBaudrate) + { + sPort = new SerialPort(); + sPort.PortName = cPort; + sPort.BaudRate = cBaudrate; + sPort.DataReceived += sDataReceived; + sPort.ErrorReceived += sErrorReceived; + sPort.PinChanged += sPinChanged; + + try + { + sPort.Open(); + } + catch (Exception ex) + { + throw new Exception("Error Open - " + ex.Message); + } + + return sPort.IsOpen; + } + + private void Close() + { + if (sPort != null) + { + if (sPort.IsOpen) + { + sPort.Close(); + } + sPort = null; + } + } + + #endregion + + #region PUBLIC FUNCTION + + public void SetPolling(bool flag, int sId, ref DeviceSystemData aSystemData) + { + SystemId = sId; + UartPolling = flag; + SystemData = aSystemData; + SystemData.mNo = SystemId; + } + + public void SetAutoTx(bool autoTx) + { + AutoUartTx = autoTx; + } + + public void SetWriteCoilReg(ushort WriteAddr, short WriteData) + { + wFlag = 2; + WriteRegAddr = WriteAddr; + WriteCoilRegData = WriteData; + + for (int i = 0; i < 500; i += 10) + { + Thread.Sleep(10); + Application.DoEvents(); + } + } + + public void SetWriteReg(ushort WriteAddr, byte[] WriteData, bool ReplyFlag, int type) + { + WriteRegAddr = WriteAddr; + + TUartTRxData uartTRxData = new TUartTRxData(); + uartTRxData.type = type; + //uartTRxData.data = csSerialCommFunction.MakeWriteRegisterData((ushort)SystemId, WriteRegAddr, WriteData); + uartTRxData.data = WriteData; + uartTRxData.length = uartTRxData.data.Length; + + uartTxBuff?.PutBuff(uartTRxData); + } + public void SetReadReg(ushort ReadAddr, ushort ReadLen, bool ReplyFlag) + { + wFlag = 4; + ReadRegAddr = ReadAddr; + ReadRegLen = ReadLen; + } + + public void SetParam(ushort WriteAddr, short[] WriteData) + { + wFlag = 1; + + WriteRegAddr = WriteAddr; + + TUartTRxData uartTRxData = new TUartTRxData(); + uartTRxData.type = wFlag; + uartTRxData.data = csSerialCommFunction.MakeWriteRegisterData((ushort)SystemId, WriteRegAddr, WriteData); + uartTRxData.length = uartTRxData.data.Length; + + uartTxBuff?.PutBuff(uartTRxData); + } + + public void SendProcessFromApp(int sId, int mode, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib) + { + short[] data = null; + + switch (mode) + { + case csConstData.UART_PARAM_LIST.CELL_UNDER_VOLTAGE: // Cell Under Volatge Parameter + data = new short[1]; + data[0] = aParam.CellUnderVoltageWarning; SetParam((ushort)(mode + 0), data); + data[0] = aParam.CellUnderVoltageTrip; SetParam((ushort)(mode + 1), data); + data[0] = aParam.CellUnderVoltageRelease; SetParam((ushort)(mode + 2), data); + break; + case csConstData.UART_PARAM_LIST.CELL_OVER_VOLTAGE: // Cell Over Volatge Parameter + data = new short[1]; + data[0] = aParam.CellOverVoltageWarning; SetParam((ushort)(mode + 0), data); + data[0] = aParam.CellOverVoltageTrip; SetParam((ushort)(mode + 1), data); + data[0] = aParam.CellOverVoltageRelease; SetParam((ushort)(mode + 2), data); + break; + case csConstData.UART_PARAM_LIST.PACK_UNDER_VOLTAGE: // Pack Under Volatge Parameter + data = new short[1]; + data[0] = (short)(aParam.SysUnderVoltageWarning * 10); SetParam((ushort)(mode + 0), data); + data[0] = (short)(aParam.SysUnderVoltageTrip * 10); SetParam((ushort)(mode + 1), data); + data[0] = (short)(aParam.SysUnderVoltageRelease * 10); SetParam((ushort)(mode + 2), data); + break; + case csConstData.UART_PARAM_LIST.PACK_OVER_VOLTAGE: // Pack Over Volatge Parameter + data = new short[1]; + data[0] = (short)(aParam.SysOverVoltageWarning * 10); SetParam((ushort)(mode + 0), data); + data[0] = (short)(aParam.SysOverVoltageTrip * 10); SetParam((ushort)(mode + 1), data); + data[0] = (short)(aParam.SysOverVoltageRelease * 10); SetParam((ushort)(mode + 2), data); + break; + case csConstData.UART_PARAM_LIST.CHG_LOW_TEMPERATURE: // Charge Low Temperature Parameter + data = new short[1]; + data[0] = (short)(aParam.ChaLowTempWarning + 50); SetParam((ushort)(mode + 0), data); + data[0] = (short)(aParam.ChaLowTempTrip + 50); SetParam((ushort)(mode + 1), data); + data[0] = (short)(aParam.ChaLowTempRelease + 50); SetParam((ushort)(mode + 2), data); + break; + case csConstData.UART_PARAM_LIST.CHG_HIGH_TEMPERATURE: // Pack High Temperature Parameter + data = new short[1]; + data[0] = (short)(aParam.ChaHighTempWarning + 50); SetParam((ushort)(mode + 0), data); + data[0] = (short)(aParam.ChaHighTempTrip + 50); SetParam((ushort)(mode + 1), data); + data[0] = (short)(aParam.ChaHighTempRelease + 50); SetParam((ushort)(mode + 2), data); + break; + case csConstData.UART_PARAM_LIST.DCH_LOW_TEMPERATURE: // Charge Low Temperature Parameter + data = new short[1]; + data[0] = (short)(aParam.DchLowTempWarning + 50); SetParam((ushort)(mode + 0), data); + data[0] = (short)(aParam.DchLowTempTrip + 50); SetParam((ushort)(mode + 1), data); + data[0] = (short)(aParam.DchLowTempRelease + 50); SetParam((ushort)(mode + 2), data); + break; + case csConstData.UART_PARAM_LIST.DCH_HIGH_TEMPERATURE: // Pack High Temperature Parameter + data = new short[1]; + data[0] = (short)(aParam.DchHighTempWarning + 50); SetParam((ushort)(mode + 0), data); + data[0] = (short)(aParam.DchHighTempTrip + 50); SetParam((ushort)(mode + 1), data); + data[0] = (short)(aParam.DchHighTempRelease + 50); SetParam((ushort)(mode + 2), data); + break; + case csConstData.UART_PARAM_LIST.CHG_OVER_CURRENT: // Charge Over Current Parameter + data = new short[1]; + data[0] = (short)(aParam.ChaOverCurrentReleaseTime * 1); SetParam((ushort)(mode + 0), data); + data[0] = (short)(aParam.ChaOverCurrentTrip1 * 10); SetParam((ushort)(mode + 2), data); + data[0] = (short)(aParam.ChaOverCurrentTrip2 * 10); SetParam((ushort)(mode + 5), data); + break; + case csConstData.UART_PARAM_LIST.DCH_OVER_CURRENT: // Discharge Over Current Parameter + data = new short[1]; + data[0] = (short)(aParam.DchOverCurrentReleaseTime * 1); SetParam((ushort)(mode + 0), data); + data[0] = (short)(aParam.DchOverCurrentTrip1 * 10); SetParam((ushort)(mode + 2), data); + data[0] = (short)(aParam.DchOverCurrentTrip2 * 10); SetParam((ushort)(mode + 5), data); + break; + case csConstData.UART_PARAM_LIST.LOW_CAPACITY: + data = new short[1]; + data[0] = aParam.LowSocWarning; SetParam((ushort)(mode + 0), data); + break; + case csConstData.UART_PARAM_LIST.DEFAULT_PARAM: // Default Parameter + int i = 0; + + Forms.fmxWait WaitForm = new Forms.fmxWait(); + WaitForm.StartPosition = FormStartPosition.CenterScreen; + + try + { + //WaitForm.Show(); + data = new short[1]; + + i = csConstData.UART_PARAM_LIST.CELL_UNDER_VOLTAGE; + data[0] = csConstData.UART_PARAM_DEFAULT.Warn_Cell_UV; SetParam((ushort)(i + 0), data); + data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Cell_UV; SetParam((ushort)(i + 1), data); + data[0] = csConstData.UART_PARAM_DEFAULT.Release_Cell_UV; SetParam((ushort)(i + 2), data); + i = csConstData.UART_PARAM_LIST.PACK_UNDER_VOLTAGE; + data[0] = csConstData.UART_PARAM_DEFAULT.Warn_Pack_UV; SetParam((ushort)(i + 0), data); + data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Pack_UV; SetParam((ushort)(i + 1), data); + data[0] = csConstData.UART_PARAM_DEFAULT.Release_Pack_UV; SetParam((ushort)(i + 2), data); + i = csConstData.UART_PARAM_LIST.CELL_OVER_VOLTAGE; + data[0] = csConstData.UART_PARAM_DEFAULT.Warn_Cell_OV; SetParam((ushort)(i + 0), data); + data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Cell_OV; SetParam((ushort)(i + 1), data); + data[0] = csConstData.UART_PARAM_DEFAULT.Release_Cell_OV; SetParam((ushort)(i + 2), data); + i = csConstData.UART_PARAM_LIST.PACK_OVER_VOLTAGE; + data[0] = csConstData.UART_PARAM_DEFAULT.Warn_Pack_OV; SetParam((ushort)(i + 0), data); + data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Pack_OV; SetParam((ushort)(i + 1), data); + data[0] = csConstData.UART_PARAM_DEFAULT.Release_Pack_OV; SetParam((ushort)(i + 2), data); + + i = csConstData.UART_PARAM_LIST.CHG_OVER_CURRENT; + data[0] = csConstData.UART_PARAM_DEFAULT.Times_Charge_OC; SetParam((ushort)(i - 2), data); + data[0] = csConstData.UART_PARAM_DEFAULT.ReleaseTime_Charge_OC; SetParam((ushort)(i + 0), data); + data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Charge_OC1; SetParam((ushort)(i + 2), data); + data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Charge_OC2; SetParam((ushort)(i + 5), data); + data[0] = csConstData.UART_PARAM_DEFAULT.Delay_Charge_OC1; SetParam((ushort)(i + 8), data); + data[0] = csConstData.UART_PARAM_DEFAULT.Delay_Charge_OC2; SetParam((ushort)(i + 9), data); + + i = csConstData.UART_PARAM_LIST.DCH_OVER_CURRENT; + data[0] = csConstData.UART_PARAM_DEFAULT.Times_Discharge_OC; SetParam((ushort)(i - 2), data); + data[0] = csConstData.UART_PARAM_DEFAULT.ReleaseTime_Discharge_OC; SetParam((ushort)(i + 0), data); + data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Discharge_OC1; SetParam((ushort)(i + 2), data); + data[0] = csConstData.UART_PARAM_DEFAULT.Protect_Discharge_OC2; SetParam((ushort)(i + 5), data); + data[0] = csConstData.UART_PARAM_DEFAULT.Delay_Discharge_OC1; SetParam((ushort)(i + 8), data); + data[0] = csConstData.UART_PARAM_DEFAULT.Delay_Discharge_OC2; SetParam((ushort)(i + 9), data); + + i = csConstData.UART_PARAM_LIST.CHG_LOW_TEMPERATURE; + data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Warn_Charge_UT + 50); SetParam((ushort)(i + 0), data); + data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Protect_Charge_UT + 50); SetParam((ushort)(i + 1), data); + data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Release_Charge_UT + 50); SetParam((ushort)(i + 2), data); + i = csConstData.UART_PARAM_LIST.CHG_HIGH_TEMPERATURE; + data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Warn_Charge_OT + 50); SetParam((ushort)(i + 0), data); + data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Protect_Charge_OT + 50); SetParam((ushort)(i + 1), data); + data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Release_Charge_OT + 50); SetParam((ushort)(i + 2), data); + i = csConstData.UART_PARAM_LIST.DCH_LOW_TEMPERATURE; + data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Warn_Discharge_UT + 50); SetParam((ushort)(i + 0), data); + data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Protect_Discharge_UT + 50); SetParam((ushort)(i + 1), data); + data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Release_Discharge_UT + 50); SetParam((ushort)(i + 2), data); + i = csConstData.UART_PARAM_LIST.DCH_HIGH_TEMPERATURE; + data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Warn_Discharge_OT + 50); SetParam((ushort)(i + 0), data); + data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Protect_Discharge_OT + 50); SetParam((ushort)(i + 1), data); + data[0] = (short)(csConstData.UART_PARAM_DEFAULT.Release_Discharge_OT + 50); SetParam((ushort)(i + 2), data); + + i = csConstData.UART_PARAM_LIST.LOW_CAPACITY; + data[0] = csConstData.UART_PARAM_DEFAULT.Warn_Low_Capacity + 0; SetParam((ushort)(i + 0), data); + + i = csConstData.UART_PARAM_LIST.ENV_LOW_TEMPERATURE; + data[0] = 0; SetParam((ushort)(i + 0), data); + data[0] = 0; SetParam((ushort)(i + 1), data); + data[0] = 0; SetParam((ushort)(i + 2), data); + i = csConstData.UART_PARAM_LIST.ENV_HIGH_TEMPERATURE; + data[0] = 0; SetParam((ushort)(i + 0), data); + data[0] = 0; SetParam((ushort)(i + 1), data); + data[0] = 0; SetParam((ushort)(i + 2), data); + } + catch (Exception) + { + + } + finally + { + //WaitForm?.Close(); + } + break; + case 15: // Capcity change + data = new short[1]; + i = csConstData.UART_PARAM_LIST.DESIGN_CAPACITY; + data[0] = (short)aCalib.CapCalib.DesignCapacity; SetParam((ushort)(i + 0), data); + i = csConstData.UART_PARAM_LIST.SOC_VALUE; + data[0] = (short)aCalib.CapCalib.SocValue; SetParam((ushort)(i + 0), data); + break; + case 16: // Charge Mode + data = new short[1]; + i = csConstData.UART_CALIB_ADDR_LIST.CHAGE_MODE; + data[0] = (short)aCalib.ChaMode.Mode; SetParam((ushort)(i + 0), data); + data[0] = (short)aCalib.ChaMode.Value; SetParam((ushort)(i + 1), data); + break; + case 17: // BMS DateTime Set + data = new short[2]; + i = csConstData.UART_CALIB_ADDR_LIST.BMS_DATETIME; + data[0] = (short)aCalib.BmsDateTime.sValue[0]; + data[1] = (short)aCalib.BmsDateTime.sValue[1]; SetParam((ushort)(i + 0), data); + break; + case 18: + data = new short[1]; + i = csConstData.UART_CALIB_ADDR_LIST.ANTI_THEFT_GYRO; + data[0] = (short)aCalib.AntiTheft.GyroScope; SetParam((ushort)(i + 0), data); + break; + case 19: // Clear Protect + data = new short[1]; + i = csConstData.UART_CALIB_ADDR_LIST.ANTI_THEFT_GYRO; + data[0] = (short)0; SetParam((ushort)(i + 0), data); + data[0] = (short)aCalib.AntiTheft.GyroScope; SetParam((ushort)(i + 0), data); + break; + case 20: + data = new short[1]; + i = csConstData.UART_CALIB_ADDR_LIST.ANTI_THEFT_COMM; + data[0] = (short)aCalib.AntiTheft.Comm; SetParam((ushort)(i + 0), data); + break; + case 21: // Cell Balancing Voltage + data = new short[1]; + i = csConstData.UART_CALIB_ADDR_LIST.BAL_VOLT; + data[0] = (short)aCalib.BalCalib.Volt; SetParam((ushort)(i + 0), data); + break; + case 22: // Cell Balancing Diff + data = new short[1]; + i = csConstData.UART_CALIB_ADDR_LIST.BAL_DIFF; + data[0] = (short)aCalib.BalCalib.Volt; SetParam((ushort)(i + 0), data); + break; + default: + break; + } + } + + #endregion + + #region RX BUFFERING + + private const int BUFFER_SIZE = 512; + + private readonly byte[] rBuffer = new byte[BUFFER_SIZE]; + private int rBufStart = 0; + private int rBufEnd = 0; + + private void PutBuff(byte c) + { + rBuffer[rBufStart++] = c; + rBufStart %= BUFFER_SIZE; + + if (rBufStart == rBufEnd) + { + rBufEnd++; + rBufEnd %= BUFFER_SIZE; + } + } + + private int GetBuff() + { + int result = 0; + + if (rBufStart != rBufEnd) + { + result = 0x0100 + rBuffer[rBufEnd++]; + rBufEnd %= BUFFER_SIZE; + } + return result; + } + + private void FlushBuff() + { + rBufStart = rBufEnd = 0; + } + + #endregion + + #region TX BUFFERING + + private byte[] MakeWriteRegData(ushort DevID, ushort WriteAddr, ushort WriteLen, ref ushort[] WriteData) + { + byte[] wData = null; + + if (WriteLen > 0) + { + + } + + return wData; + } + + private string MakeCheckSum(byte[] sData, int len) + { + string result = ""; + int checksum = 0; + + for (int i = 0; i < len; i++) + { + checksum += sData[i + 1]; + } + + checksum = ~checksum + 1; + + result = String.Format("{0:X2}{1:X2}", (byte)(checksum >> 8), (byte)checksum); + + return result; + } + + private byte[] MakeTxDataVision(ref bool wData) + { + byte[] sData = null; + + rFlag2 = 0; + + if ((uartTxBuff != null) && (uartTxBuff.CheckBuff())) + { + TUartTRxData sBuff = uartTxBuff.GetBuff(); + if (sBuff != null) + { + sData = sBuff.data; + wData = true; + rFlag = true; + rFlag2 = sBuff.type; + } + } + else if (wFlag == 2) + { + sData = csSerialCommFunction.MakeWriteCoilData((ushort)SystemId, WriteRegAddr, WriteCoilRegData); + if (wFlag != 0) wFlag = 0; + rFlag = true; + } + else if (wFlag == 3) + { + sData = WriteRegData; + if (wFlag != 0) wFlag = 0; + rFlag = true; + } + else if (wFlag == 4) + { + sData = csSerialCommFunction.MakeReadRegisterData((ushort)SystemId, csSerialCommFunction.READ_HOLDING_REG, ReadRegAddr, ReadRegLen); + if (wFlag != 0) wFlag = 0; + rFlag = true; + } + else + { + if (UartPolling && AutoUartTx) + { + ushort sCmd; + switch (addr_ch) + { + case 0: + addr_ch = 1; + RequestRegAddr = 0x0000; //Byul Init 0x0000 + RequestRegLen = 0x0040; + sCmd = csSerialCommFunction.READ_HOLDING_REG; + rFlag = true; + break; + case 1: + addr_ch = 2; + RequestRegAddr = 0x0040; + RequestRegLen = 0x0040; + sCmd = csSerialCommFunction.READ_HOLDING_REG; + rFlag = true; + break; + case 2: + addr_ch = 3; + RequestRegAddr = 0x0080; + RequestRegLen = 0x0020 + 7; + sCmd = csSerialCommFunction.READ_HOLDING_REG; + rFlag = true; + break; + case 3: + if (Config.ModuleQty > 1) + { + SystemId++; + if (SystemId > Config.ModuleQty) + { + SystemId = 1; + } + } + addr_ch = 0; + sCmd = csSerialCommFunction.NO_CMD; + rFlag = false; + break; + default: + addr_ch = 0; + RequestRegAddr = 0x0000; //Byul Init 0x0000 + RequestRegLen = 100; + sCmd = csSerialCommFunction.READ_HOLDING_REG; + break; + } + if (sCmd == csSerialCommFunction.NO_CMD) + { + sData = null; + } + else + { + sData = csSerialCommFunction.MakeReadRegisterData((ushort)SystemId, sCmd, RequestRegAddr, RequestRegLen); + } + } + } + return sData; + } + + #endregion + + #region COMM THREAD + + private readonly byte[] ReadBuf = new byte[BUFFER_SIZE]; + ushort rPosition = 0; + bool BuffStart = false; + + private void RecvPacketInit() + { + BuffStart = false; + rPosition = 0; + } + + private void uartCommThread() + { + int RecvTimeout = Config.RecvWaitTime; + int getData = 0; + byte cData = 0; + int TimeOutCount = 0; + + StartSend: + while (SerialPortThreadEnd == false) + { + if ((sPort == null) || (sPort.IsOpen == false)) continue; + + bool wMode = false; + byte[] txData = MakeTxDataVision(ref wMode); + if (txData != null) + { + FlushBuff(); + sPort.Write(txData, 0, txData.Length); + OnPrint?.Invoke(this, csLog.trx_data_print(txData, txData.Length, 0)); + } + + if (rFlag == true) + { + RecvPacketInit(); + DateTime rDateTime = DateTime.Now; + + while (true) + { + DateTime nDateTime = rDateTime.AddMilliseconds(RecvTimeout); + if (nDateTime < DateTime.Now) break; + + if (((getData = GetBuff()) & 0x0100) != 0x0000) + { + rDateTime = DateTime.Now; + cData = (byte)(getData & 0x00FF); + if (rPosition >= BUFFER_SIZE) RecvPacketInit(); + + if (BuffStart == false) + { + if ((cData == (byte)SystemId) || (cData == (byte)0x7F)) + { + rPosition = 0; + ReadBuf[rPosition++] = cData; + BuffStart = true; + } + } + else + { + ReadBuf[rPosition++] = cData; + + switch (csSerialCommFunction.ModbusPacketFromSlaveCheck(ReadBuf, rPosition)) + { + case 0: // Need more data + break; + case 1: // Packet OK, no error + OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1)); + + TimeOutCount = 0; + + int mID = ReadBuf[0]; + if (mID > 0) mID--; + + SystemData.CommFail = false; + SystemData.ShelfCommFail = false; + + if (rFlag2 == 0) + { + short[] result_code = csSerialCommFunction.SerialRxProcess(ReadBuf, RequestRegAddr, rPosition, ref SystemData); + + OnUpdate?.Invoke(this, ref SystemData); + } + else + { + rFlag2 = 0; + wMode = false; + WriteRegAddr = 0; + if (OnDataRecv != null) + { + byte[] adata = new byte[rPosition + 1]; + for (int j = 0; j < adata.Length; j++) { adata[j] = ReadBuf[j]; } + OnDataRecv(adata); + } + } + rFlag = false; + Thread.Sleep(100); + goto StartSend; + case 2: // Fw Update Packet OK + OnPrint?.Invoke(this, csLog.trx_data_print(ReadBuf, rPosition, 1)); + + TimeOutCount = 0; + rFlag = false; + if (OnDataRecv != null) + { + byte[] adata = new byte[rPosition + 1]; + for (int j = 0; j < adata.Length; j++) + { + adata[j] = ReadBuf[j]; + } + OnDataRecv(adata); + } + goto StartSend; + case -1: // Packet error + RecvPacketInit(); + Thread.Sleep(100); + goto StartSend; + default: + break; + } + } + } + else + { + Thread.Sleep(1); + } + } + + if (rPosition > 0) + { + Thread.Sleep(1); + } + else + { + WriteRegAddr = 0; + TimeOutCount++; + if (TimeOutCount >= 5) + { + TimeOutCount = 5; + //SystemData[0].CommFail = true; + if (SystemData.ShelfCommFail == false) + { + SystemData.ShelfCommFail = true; + csUtils.DataInit(Config, ref SystemData); + } + } + Thread.Sleep(100); + } + OnUpdate?.Invoke(this, ref SystemData); + Thread.Sleep(1); + } + else + { + Thread.Sleep(100); + } /* if (rFlag == true) */ + rPosition = 0; + } + } + + #endregion + } +} diff --git a/LFP_Manager/Utils/CsDbProcess.cs b/LFP_Manager/Utils/CsDbProcess.cs new file mode 100644 index 0000000..770988b --- /dev/null +++ b/LFP_Manager/Utils/CsDbProcess.cs @@ -0,0 +1,1400 @@ +using LFP_Manager.DataStructure; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SQLite; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace LFP_Manager.Utils +{ + class csDbProcess + { + // Query - SELECT * FROM TABLE_NAME like('%neon%',field_name) - 문자를 포함하는 데이터 검색 + public static string DbFileName = @"LFPS-48100S-J_INV.db"; + public static string DbFilePathFormat = @"\db\"; + public static string DbFileNameFormat = @"\db\{0}_{1}.db"; + public static string DbSchemaTableFileName = @"\sql\DB_SCHEMA_TABLE.sql"; + public static string ModuleTableName = @"TModule"; + + public static string LogDbFilePath = @"\db"; + public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB"; + public static string LogDbSchemaTableFileName = @"\sql\LOG_DB_SCHEMA_TABLE.sql"; + + public static DateTime Delay(int ms) + { + DateTime thisMoment = DateTime.Now; + TimeSpan duration = new TimeSpan(0, 0, 0, 0, ms); + DateTime afterMoment = thisMoment.Add(duration); + + while (afterMoment >= thisMoment) + { + System.Windows.Forms.Application.DoEvents(); + + thisMoment = DateTime.Now; + } + + return DateTime.Now; + } + + //트랜잭션 시작 + public static void BeginTran(SQLiteConnection conn) + { + SQLiteCommand command = new SQLiteCommand("Begin", conn); + command.ExecuteNonQuery(); + command.Dispose(); + } + + //트랜잭션 완료 + public static void CommitTran(SQLiteConnection conn) + { + SQLiteCommand command = new SQLiteCommand("Commit", conn); + command.ExecuteNonQuery(); + command.Dispose(); + } + + #region CREATE DATABASE + + public static void DbCreate(string mSN, string bName) + { + string result = ""; + string dbFilename = String.Format(DbFileNameFormat, MakeLotNumber(mSN, bName), bName); + string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false) + Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath)); + + if (File.Exists(dbFilePath) == true) + { + //throw new Exception("Already have db file - Failed to create db file"); + return; + } + else + { + // Create database + SQLiteConnection.CreateFile(dbFilePath); + } + + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Create table + using (SQLiteCommand command = connection.CreateCommand()) + { + string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + DbSchemaTableFileName; + string query = File.ReadAllText(schemaFile); + + command.CommandText = query; + SQLiteDataReader reader = null; + reader = command.ExecuteReader(); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + connection.Close(); + if (result != "") throw new Exception(result); + } + } + return; + } + + public static void LogDbCreate(string aModel) + { + string result = ""; + string ModelName = aModel; + //public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB"; + string dbFilename = String.Format(LogDbFileNameFormat + , String.Format("{0:yyMM}", DateTime.Now) + , String.Format("{0:yyMMdd}", DateTime.Now) + , ModelName + ); + string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false) + Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath)); + + if (File.Exists(dbFilePath) == true) + { + //throw new Exception("Already have db file - Failed to create db file"); + return; + } + else + { + // Create database + SQLiteConnection.CreateFile(dbFilePath); + } + + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Create table + using (SQLiteCommand command = connection.CreateCommand()) + { + string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + LogDbSchemaTableFileName; + string query = File.ReadAllText(schemaFile); + + command.CommandText = query; + SQLiteDataReader reader = null; + reader = command.ExecuteReader(); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + connection.Close(); + if (result != "") throw new Exception(result); + } + } + return; + } + + public static void LogDbCreateNew(string aModel) + { + string result = ""; + string ModelName = aModel; + //public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB"; + string dbFilename = String.Format(LogDbFileNameFormat + , String.Format("{0:yyMM}", DateTime.Now) + , String.Format("{0:yyMMdd}", DateTime.Now) + , ModelName + ); + string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false) + Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath)); + + // Create database + SQLiteConnection.CreateFile(dbFilePath); + + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Create table + using (SQLiteCommand command = connection.CreateCommand()) + { + string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + LogDbSchemaTableFileName; + string query = File.ReadAllText(schemaFile); + + command.CommandText = query; + SQLiteDataReader reader = null; + reader = command.ExecuteReader(); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + connection.Close(); + if (result != "") throw new Exception(result); + } + } + return; + } + + #endregion + + #region MAKE LOT NUMBER + public static string MakeLotNumber(string mSN) + { + string LotNo = mSN.Substring(1, 11) + "000"; + return LotNo; + } + + public static string MakeLotNumber(string mSN, string bName) + { + string LotNo; + + if (bName == "BMCB_J") + LotNo = mSN.Substring(0, 10) + "0000"; + else + LotNo = mSN.Substring(1, 11) + "000"; + return LotNo; + } + + #endregion + + #region Excute Database + public static DataTable DbSqlExcute(string path, string query, bool create_db_flag = false) + { + string result = ""; + DataTable dtResult = null; + string dbFilename = Path.GetDirectoryName(path) + DbFileName; + + if (Directory.Exists(Path.GetDirectoryName(dbFilename)) == false) + Directory.CreateDirectory(Path.GetDirectoryName(dbFilename)); + + // Create database + if (File.Exists(dbFilename) == false) + { + if (create_db_flag == true) + SQLiteConnection.CreateFile(dbFilename); + else + throw new Exception("No database file - " + DbFileName); + } + + // Open database + string strConn = @"Data Source=" + dbFilename; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Create table + using (SQLiteCommand command = connection.CreateCommand()) + { + //command.CommandText = "CREATE TABLE File (Name text, Size bigint, Modified datetime);"; + command.CommandText = query; + SQLiteDataReader reader = null; + //command.ExecuteNonQuery(); + reader = command.ExecuteReader(); + dtResult = new DataTable(); + dtResult.Load(reader); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + connection.Close(); + if (result != "") throw new Exception(result); + } + } + return dtResult; + } + + public static DataTable DbSqlExcuteA1(string path, string query) + { + DataTable dtResult = null; + string dbFilename = System.IO.Path.GetDirectoryName(path) + DbFileName; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilename)) == false) + Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilename)); + + if (File.Exists(dbFilename) == false) + // Create database + SQLiteConnection.CreateFile(dbFilename); + + // Open database + string strConn = @"Data Source=" + dbFilename; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Excute Query + var adpt = new SQLiteDataAdapter(query, connection); + DataSet ds = new DataSet(); + adpt.Fill(ds); + + dtResult = ds.Tables[0]; + } + catch (Exception e) + { + throw e; + } + finally + { + connection.Close(); + } + } + return dtResult; + } + + public static DataTable DbSqlExcuteA(string lot, string query, string bName, bool create_db_flag = false) + { + string result = ""; + DataTable dtResult = new DataTable(); + string lotNo = lot; + string dbFilename = String.Format(DbFileNameFormat, lotNo, bName); + string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename; + + if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false) + { + if (create_db_flag) + Directory.CreateDirectory(Path.GetDirectoryName(dbFilePath)); + else + throw new Exception("No DB file path - " + Path.GetDirectoryName(dbFilePath)); + } + if (File.Exists(dbFilePath) == false) + { + if (create_db_flag) + SQLiteConnection.CreateFile(dbFilePath); + else + throw new Exception(String.Format("No DB file - DbSqlExcuteA ({0})", dbFilename)); + } + + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Excute Query + var adpt = new SQLiteDataAdapter(query, connection); + DataSet ds = new DataSet(); + adpt.Fill(ds); + if (ds.Tables.Count > 0) + dtResult = ds.Tables[0]; + } + catch (Exception ex) + { + result = ex.Message; + } + finally + { + connection.Close(); + if (result != "") throw new Exception(result); + } + } + return dtResult; + } + + public static DataTable DbSqlExcuteA2(string dbFileName, string query, bool create_db_flag = false) + { + string result = ""; + DataTable dtResult = new DataTable(); + string lotNo = dbFileName.Substring(0, 9); + string dbFilename = String.Format(DbFilePathFormat, lotNo) + dbFileName; + string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename; + + if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false) + { + if (create_db_flag) + Directory.CreateDirectory(Path.GetDirectoryName(dbFilePath)); + else + throw new Exception("No DB file path - " + Path.GetDirectoryName(dbFilePath)); + } + if (File.Exists(dbFilePath) == false) + { + if (create_db_flag) + SQLiteConnection.CreateFile(dbFilePath); + else + throw new Exception(String.Format("No DB file - DbSqlExcuteA ({0})", dbFilename)); + } + + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Excute Query + var adpt = new SQLiteDataAdapter(query, connection); + DataSet ds = new DataSet(); + adpt.Fill(ds); + if (ds.Tables.Count > 0) + dtResult = ds.Tables[0]; + } + catch (Exception ex) + { + result = ex.Message; + } + finally + { + connection.Close(); + if (result != "") throw new Exception(result); + } + } + return dtResult; + } + public static DataTable DbSqlExcuteA3(string dbFileName, string query, bool create_db_flag = false) + { + string result = ""; + DataTable dtResult = new DataTable(); + string dbFilePath = dbFileName; + + if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false) + { + if (create_db_flag) + Directory.CreateDirectory(Path.GetDirectoryName(dbFilePath)); + else + throw new Exception("No DB file path - " + Path.GetDirectoryName(dbFilePath)); + } + if (File.Exists(dbFilePath) == false) + { + if (create_db_flag) + SQLiteConnection.CreateFile(dbFilePath); + else + throw new Exception(String.Format("No DB file - DbSqlExcuteA ({0})", dbFileName)); + } + + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Excute Query + var adpt = new SQLiteDataAdapter(query, connection); + DataSet ds = new DataSet(); + adpt.Fill(ds); + if (ds.Tables.Count > 0) + dtResult = ds.Tables[0]; + } + catch (Exception ex) + { + result = ex.Message; + } + finally + { + connection.Close(); + if (result != "") throw new Exception(result); + } + } + return dtResult; + } + + #endregion + + #region BMS DATA INSERT AND UPDATE + + public static void BmsLogDataInsert(string modelName, ref DeviceSystemData systemData, DateTime dateTime, int cvUnit) + { + if (string.IsNullOrEmpty(modelName)) + throw new ArgumentNullException(nameof(modelName)); + if (systemData == null) + throw new ArgumentNullException(nameof(systemData)); + if (cvUnit <= 0) + throw new ArgumentException("cvUnit must be greater than 0", nameof(cvUnit)); + + string dbFilename = GetLogDbFileName(modelName); + string dbFilePath = GetLogDbFilePath(dbFilename); + ValidateDbPath(dbFilePath); + + using (var connection = new SQLiteConnection(string.Format("Data Source={0}", dbFilePath))) + { + try + { + connection.Open(); + using (var transaction = connection.BeginTransaction()) + { + try + { + InsertModuleData(connection, modelName, systemData, dateTime, cvUnit); + transaction.Commit(); + } + catch + { + transaction.Rollback(); + throw; + } + } + } + catch (Exception ex) + { + throw new Exception(string.Format("Failed to insert BMS log data: {0}", ex.Message), ex); + } + } + } + + private static string GetLogDbFileName(string modelName) + { + return string.Format(LogDbFileNameFormat, + DateTime.Now.ToString("yyMM"), + DateTime.Now.ToString("yyMMdd"), + modelName); + } + + private static string GetLogDbFilePath(string dbFilename) + { + string exePath = Path.GetDirectoryName(Application.ExecutablePath); + // LogDbFilePath가 이미 '\'로 시작한다면 제거 + string cleanLogPath = LogDbFilePath.TrimStart('\\'); + string cleanDbFilename = dbFilename.TrimStart('\\'); + string fullPath = Path.Combine(exePath, cleanLogPath); + return Path.Combine(fullPath, cleanDbFilename); + } + + private static void ValidateDbPath(string dbFilePath) + { + string directory = Path.GetDirectoryName(dbFilePath); + if (!Directory.Exists(directory)) + throw new DirectoryNotFoundException(string.Format("Log DB directory not found: {0}", directory)); + if (!File.Exists(dbFilePath)) + throw new FileNotFoundException(string.Format("Log DB file not found: {0}", dbFilePath)); + } + + private static void InsertModuleData(SQLiteConnection connection, string modelName, DeviceSystemData systemData, DateTime dateTime, int cvUnit) + { + var columnNames = GetColumnNames(systemData); + var parameters = CreateParameters(systemData, dateTime, cvUnit); + + using (var command = connection.CreateCommand()) + { + var paramNames = new List(); + foreach (var param in parameters) + { + paramNames.Add("@" + param.ParameterName); + } + + command.CommandText = string.Format( + "INSERT INTO TModuleValue ({0}) VALUES ({1})", + string.Join(", ", columnNames), + string.Join(", ", paramNames)); + + command.Parameters.AddRange(parameters); + command.ExecuteNonQuery(); + } + } + + private static List GetColumnNames(DeviceSystemData systemData) + { + var columns = new List + { + "create_date", + "module_no", + "model_name", + "module_sn", + "fw_ver", + "comm_fail", + "op_status", + "alarm_status", + "warning", + "fault", + "module_voltage", + "module_current", + "module_soc", + "module_soh", + "module_cyclecount" + }; + + // Add cell voltage columns + for (int i = 1; i <= systemData.cellQty; i++) + { + columns.Add(string.Format("cell_voltage_{0:00}", i)); + } + + // Add temperature columns + for (int i = 1; i <= systemData.tempQty; i++) + { + columns.Add(string.Format("temperature_{0:00}", i)); + } + + columns.Add("ext1_temp"); + columns.Add("ext2_temp"); + columns.Add("chg_option"); + + return columns; + } + + private static SQLiteParameter[] CreateParameters(DeviceSystemData systemData, DateTime dateTime, int cvUnit) + { + var parameters = new List + { + new SQLiteParameter("create_date", dateTime), + new SQLiteParameter("module_no", systemData.mNo), + new SQLiteParameter("model_name", systemData.Information.ModelName), + new SQLiteParameter("module_sn", systemData.Information.HwSerialNumber), + new SQLiteParameter("fw_ver", systemData.Information.SwProductRev), + new SQLiteParameter("comm_fail", systemData.ShelfCommFail), + new SQLiteParameter("op_status", systemData.StatusData.status), + new SQLiteParameter("alarm_status", systemData.StatusData.batteryStatus), + new SQLiteParameter("warning", systemData.StatusData.warning), + new SQLiteParameter("fault", systemData.StatusData.protection), + new SQLiteParameter("module_voltage", (systemData.ValueData.voltageOfPack / 10.0).ToString()), + new SQLiteParameter("module_current", (systemData.ValueData.current / 10.0).ToString()), + new SQLiteParameter("module_soc", (systemData.ValueData.rSOC / 10.0).ToString()), + new SQLiteParameter("module_soh", (systemData.ValueData.stateOfHealth / 10.0).ToString()), + new SQLiteParameter("module_cyclecount", systemData.ValueData.cycleCount.ToString()) + }; + + // Add cell voltage parameters + for (int i = 0; i < systemData.cellQty; i++) + { + parameters.Add(new SQLiteParameter( + string.Format("cell_voltage_{0:00}", i + 1), + (systemData.ValueData.CellVoltage[i] / (float)cvUnit).ToString())); + } + + // Add temperature parameters + for (int i = 0; i < systemData.tempQty; i++) + { + parameters.Add(new SQLiteParameter( + string.Format("temperature_{0:00}", i + 1), + (systemData.ValueData.CellTemperature[i] / 10.0).ToString())); + } + + parameters.Add(new SQLiteParameter("ext1_temp", (systemData.ValueData.Ext1Temperature / 10.0).ToString())); + parameters.Add(new SQLiteParameter("ext2_temp", (systemData.ValueData.Ext2Temperature / 10.0).ToString())); + parameters.Add(new SQLiteParameter("chg_option", systemData.CalibrationData.Current.ChargeOption.ToString())); + + return parameters.ToArray(); + } + + public static DataTable GetDataTable(string bSN, string aTableName, string bName) + { + string result = ""; + DataTable dtResult = null; + string dbFilename = String.Format(DbFileNameFormat, MakeLotNumber(bSN, bName), bName); + string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename; + + if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false) + throw new Exception("No DB file path"); + if (File.Exists(dbFilePath) == false) + throw new Exception("No DB file"); + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + Forms.fmxWait WaitForm = new Forms.fmxWait(); + WaitForm.StartPosition = FormStartPosition.CenterScreen; + try + { + connection.Open(); + BeginTran(connection); + + WaitForm.Show(); + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = String.Format("SELECT * FROM {0}", aTableName); + SQLiteDataAdapter adapter = new SQLiteDataAdapter(command); + adapter.AcceptChangesDuringFill = false; + dtResult = new DataTable(); + adapter.Fill(dtResult); + dtResult.TableName = aTableName; + + CommitTran(connection); + + System.Windows.Forms.Application.DoEvents(); + WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1)); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (WaitForm != null) + WaitForm.Close(); + if (result != "") throw new Exception(result); + } + } + return dtResult; + } + + public static DataTable GetDataTableBySelect(string bSN, string sql, string aTableName, string bName) + { + string result = ""; + DataTable dtResult = null; + string dbFilename = String.Format(DbFileNameFormat, MakeLotNumber(bSN, bName), bName); + string dbFilePath = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + dbFilename; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false) + throw new Exception("No DB file path"); + if (File.Exists(dbFilePath) == false) + throw new Exception(String.Format("No DB file - {0}", dbFilePath)); + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + Forms.fmxWait WaitForm = new Forms.fmxWait(); + WaitForm.StartPosition = FormStartPosition.CenterScreen; + try + { + connection.Open(); + BeginTran(connection); + + WaitForm.Show(); + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = sql; + SQLiteDataAdapter adapter = new SQLiteDataAdapter(command); + adapter.AcceptChangesDuringFill = false; + dtResult = new DataTable(); + adapter.Fill(dtResult); + dtResult.TableName = aTableName; + + System.Windows.Forms.Application.DoEvents(); + WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1)); + + CommitTran(connection); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (WaitForm != null) + WaitForm.Close(); + if (result != "") + throw new Exception(result); + } + } + return dtResult; + } + + public static DataTable GetDataTableBySelectFromDbName(string dbFileName, string sql, string aTableName, string bName) + { + string result = ""; + DataTable dtResult = null; + + string lotNo = csDbUtils.MakeLotNumber(dbFileName.Substring(0, 8), bName); + string dbFilename = String.Format(@"\db\{0}\{1}", lotNo, dbFileName); + string dbFilePath = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + dbFilename; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false) + throw new Exception("No DB file path"); + if (File.Exists(dbFilePath) == false) + throw new Exception(String.Format("No DB file - {0}", dbFilePath)); + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + Forms.fmxWait WaitForm = new Forms.fmxWait(); + WaitForm.StartPosition = FormStartPosition.CenterScreen; + try + { + connection.Open(); + BeginTran(connection); + + WaitForm.Show(); + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = sql; + SQLiteDataAdapter adapter = new SQLiteDataAdapter(command); + adapter.AcceptChangesDuringFill = false; + dtResult = new DataTable(); + adapter.Fill(dtResult); + dtResult.TableName = aTableName; + + System.Windows.Forms.Application.DoEvents(); + WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1)); + + CommitTran(connection); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (WaitForm != null) + WaitForm.Close(); + if (result != "") + throw new Exception(result); + } + } + return dtResult; + } + + public static DataTable GetDataTableByFileName(string fileName, string sql, string aTableName) + { + string result = ""; + DataTable dtResult = null; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(fileName)) == false) + throw new Exception("No DB file path"); + if (File.Exists(fileName) == false) + throw new Exception("No DB file"); + // Open database + string strConn = @"Data Source=" + fileName; + using (var connection = new SQLiteConnection(strConn)) + { + Forms.fmxWait WaitForm = new Forms.fmxWait(); + WaitForm.StartPosition = FormStartPosition.CenterScreen; + try + { + connection.Open(); + BeginTran(connection); + + WaitForm.Show(); + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = sql; + SQLiteDataAdapter adapter = new SQLiteDataAdapter(command); + adapter.AcceptChangesDuringFill = false; + dtResult = new DataTable(); + adapter.Fill(dtResult); + dtResult.TableName = aTableName; + + System.Windows.Forms.Application.DoEvents(); + WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1)); + + CommitTran(connection); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (WaitForm != null) + WaitForm.Close(); + if (result != "") + throw new Exception(result); + } + } + return dtResult; + } + + public static DataTable GetModuleMatchTableByFgNo(string fg_no, string bName) + { + DataTable dtResult = null; + + int a, b, c; + a = Convert.ToInt32(fg_no); + b = a / 300 + 1; + c = a % 300; + if ((c == 0) && (b > 0)) b--; + string mSN = String.Format("1{0:yy}{1:00}{2:000}", DateTime.Now, b, c); + string lotNo = csDbUtils.MakeLotNumber(mSN, bName); + string dbfilePath = Path.GetDirectoryName(Application.ExecutablePath) + String.Format(DbFilePathFormat, lotNo); + string[] filePaths = Directory.GetFiles(dbfilePath, "*.db"); + + if (filePaths.Length > 0) + { + for (int i = 0; i < filePaths.Length; i++) + { + string fileName = Path.GetFileName(filePaths[i]); + byte[] bfilName = Encoding.ASCII.GetBytes(fileName); + + dtResult = GetDataTableByFileName(filePaths[i], String.Format("SELECT * FROM TModuleMatch where fg_no={0}", fg_no), "TModuleMatch"); + if ((dtResult != null) && (dtResult.Rows.Count == 1)) break; + } + } + if ((dtResult == null) || (dtResult.Rows.Count == 0)) + throw new Exception(String.Format("No match data - {0}", fg_no)); + + return dtResult; + } + + public static void BmsPcbMatchDataInsert(string dbFileName, DataRow sRow) + { + string result = ""; + int resultCode = (int)SQLiteErrorCode.Unknown; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFileName)) == false) + throw new Exception("No DB file path"); + if (File.Exists(dbFileName) == false) + throw new Exception(String.Format("No DB file - BmsDataInsert ({0})", dbFileName)); + + // Open database + string strConn = @"Data Source=" + dbFileName; + using (var connection = new SQLiteConnection(strConn)) + { + Forms.fmxWait WaitForm = new Forms.fmxWait + { + StartPosition = FormStartPosition.CenterScreen + }; + + try + { + connection.Open(); + BeginTran(connection); + + WaitForm.Show(); + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = "INSERT INTO" + + " TBmsPcbMatchTable" + + " (PCB1_SERIAL_NUMBER, MODULE_SERIAL_NUMBER, create_date, modify_date)" // 2 + + " Values (?,?,?,?);"; + SQLiteParameter[] p = new SQLiteParameter[4]; + + for (int i = 0; i < 4; i++) + { + p[i] = new SQLiteParameter(); + command.Parameters.Add(p[i]); + } + + int j = 0; + p[j++].Value = sRow["PCB1_SERIAL_NUMBER"]; // pcb_sn + p[j++].Value = sRow["MODULE_SERIAL_NUMBER"]; // module_sn + p[j++].Value = DateTime.Now; // create_date + p[j++].Value = DateTime.Now; // modify_date + + command.ExecuteNonQuery(); + + WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1)); + System.Windows.Forms.Application.DoEvents(); + + CommitTran(connection); + } + } + catch (SQLiteException sqle) + { + // Handle DB exception + result = sqle.Message; + resultCode = sqle.ErrorCode; + } + catch (IndexOutOfRangeException ie) + { + // If you think there might be a problem with index range in the loop, for example + result = ie.Message; + resultCode = 9999; + } + catch (Exception ex) + { + result = ex.Message; + resultCode = 9998; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (WaitForm != null) + WaitForm.Close(); + if (result != "") + { + if (resultCode == 9998) throw new Exception(result); + else if (resultCode == 9999) throw new IndexOutOfRangeException(result); + else throw new SQLiteException((SQLiteErrorCode)resultCode, result); + } + } + } + } + + public static void ErrorLogInsert(string dbFileName, DataRow sRow, string Process, string ErrType, string ErrMsg) + { + string result = ""; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFileName)) == false) + throw new Exception("No DB file path"); + if (File.Exists(dbFileName) == false) + throw new Exception(String.Format("No DB file - ErrorLogInsert ({0})", dbFileName)); + + // Open database + string strConn = @"Data Source=" + dbFileName; + using (var connection = new SQLiteConnection(strConn)) + { + try + { + connection.Open(); + BeginTran(connection); + + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = "INSERT INTO" + + " TErrorLogTable" + + " (create_date, MODULE_SERIAL_NUMBER, PCB1_SERIAL_NUMBER, PROCESS, ERROR_TYPE, ERROR_MSG)" // 2 + + " Values (?,?,?,?,?,?);"; + SQLiteParameter[] p = new SQLiteParameter[6]; + + for (int i = 0; i < 6; i++) + { + p[i] = new SQLiteParameter(); + command.Parameters.Add(p[i]); + } + + int j = 0; + p[j++].Value = DateTime.Now; // create_date + p[j++].Value = sRow["MODULE_SERIAL_NUMBER"]; // module_sn + p[j++].Value = sRow["PCB1_SERIAL_NUMBER"]; // pcb_sn + p[j++].Value = Process; // process + p[j++].Value = ErrType; // error type + p[j++].Value = ErrMsg; // error message + + command.ExecuteNonQuery(); + + CommitTran(connection); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (result != "") throw new Exception(result); + } + } + } + + #endregion + + #region SELECT QUARY + + public static int DbQuaryExcuteToDataTable(string dbFileName, string Quary, ref DataTable rDT) + { + int result = 0; + string resultStr = String.Empty; + + string strConn = @"Data Source=" + dbFileName; + using (var connection = new SQLiteConnection(strConn)) + { + try + { + connection.Open(); + BeginTran(connection); + + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = Quary; + SQLiteDataAdapter adapter = new SQLiteDataAdapter(command); + adapter.AcceptChangesDuringFill = false; + rDT = new DataTable(); + adapter.Fill(rDT); + //rDT.TableName = "TModuleValue"; + + CommitTran(connection); + + result = rDT.Rows.Count; + + System.Windows.Forms.Application.DoEvents(); + } + } + catch (Exception e) + { + resultStr = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (resultStr != "") throw new Exception(resultStr); + } + } + return result; + } + + public static void CreateLogDbFile(string dbFileName) + { + string result = ""; + + if (Directory.Exists(Path.GetDirectoryName(dbFileName)) == false) + throw new Exception("No DB file path"); + if (File.Exists(dbFileName) == true) + throw new Exception(String.Format("Already have DB file - DbQuaryExcuteToDbFile({0})", dbFileName)); + + // Create database + SQLiteConnection.CreateFile(dbFileName); + + // Open database + string strConn = @"Data Source=" + dbFileName; + using (var connection = new SQLiteConnection(strConn)) + { + Forms.fmxWait WaitForm = new Forms.fmxWait(); + WaitForm.StartPosition = FormStartPosition.CenterScreen; + try + { + connection.Open(); + BeginTran(connection); + + WaitForm.Show(); + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + LogDbSchemaTableFileName; + string query = File.ReadAllText(schemaFile); + + command.CommandText = query; + SQLiteDataReader reader = null; + reader = command.ExecuteReader(); + + WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1)); + System.Windows.Forms.Application.DoEvents(); + + CommitTran(connection); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (WaitForm != null) + WaitForm.Close(); + if (result != "") throw new Exception(result); + } + } + } + + public static void DbInsertDataToDbFile(string dbFileName, DataRow dtRow) + { + string result = ""; + + if (Directory.Exists(Path.GetDirectoryName(dbFileName)) == false) + throw new Exception("No DB file path"); + if (File.Exists(dbFileName) == false) + throw new Exception(String.Format("No DB file - DbInsertDataToDbFile({0})", dbFileName)); + + // Open database + string strConn = @"Data Source=" + dbFileName; + using (var connection = new SQLiteConnection(strConn)) + { + try + { + connection.Open(); + BeginTran(connection); + + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = String.Format("INSERT INTO TModuleValue ("); + command.CommandText += "create_date" // 0 + + ", module_no" // 1 + + ", pcb_sn" // 2 + + ", module_sn" // 3 + + ", fw_ver" // 4 + + ", comm_fail" // 5 + + ", op_status" // 6 + + ", alarm_status" // 7 + + ", warning" // 8 + + ", fault" // 9 + + ", module_voltage" // 10 + + ", module_current" // 11 + + ", module_soc" // 12 + + ", module_soh" // 13 + ; + for (int i = 0; i < 15; i++) + { + command.CommandText += String.Format(", cell_voltage_{0:00}", i + 1); // 14 ~ 28; 15 cells + } + for (int i = 0; i < 6; i++) + { + command.CommandText += String.Format(", temperature_{0:00}", i + 1); // 29 ~ 34; 6 temps + } + command.CommandText += "" + + ", chg_option" // 35 + + ", chg_cal" // 36 + + ", dch_cal" // 37 + + ")" + + " Values ("; + + int total = dtRow.Table.Columns.Count; + + for (int i = 0; i < (total - 1); i++) command.CommandText += "?,"; + command.CommandText += "?);"; + + SQLiteParameter[] p = new SQLiteParameter[total]; + + for (int i = 0; i < total; i++) + { + if (i == 0) + p[i] = new SQLiteParameter(DbType.DateTime); + else + p[i] = new SQLiteParameter(); + command.Parameters.Add(p[i]); + } + + int j = 0; + p[j++].Value = String.Format("{0:yyyy/MM/dd HH:mm:ss}", dtRow["create_date"]); // 0 create_date + p[j++].Value = dtRow["module_no"]; // 1 module_no + p[j++].Value = dtRow["pcb_sn"]; // 2 pcb_sn + p[j++].Value = dtRow["module_sn"]; // 3 module_sn + p[j++].Value = dtRow["fw_ver"]; // 4 fw_ver + p[j++].Value = dtRow["comm_fail"]; // 5 comm_fail + p[j++].Value = dtRow["op_status"]; // 6 op_status + p[j++].Value = dtRow["alarm_status"]; // 7 alarm_status + p[j++].Value = dtRow["warning"]; // 8 warning + p[j++].Value = dtRow["fault"]; // 9 fault + p[j++].Value = dtRow["module_voltage"]; // 10 module_voltage + p[j++].Value = dtRow["module_current"]; // 11 module_current + p[j++].Value = dtRow["module_soc"]; // 12 module_soc + p[j++].Value = dtRow["module_soh"]; // 13 module_soh + + for (int i = 0; i < 15; i++) + { + p[j++].Value = dtRow[String.Format("cell_voltage_{0:00}", i + 1)]; // 14 cell_voltage_01 28 + } + for (int i = 0; i < 6; i++) + { + p[j++].Value = dtRow[String.Format("temperature_{0:00}", i + 1)]; // 29 cell_voltage_01 36 + } + + p[j++].Value = dtRow["chg_option"]; // 37 chg_option + p[j++].Value = dtRow["chg_cal"]; // 38 chg_cal + p[j++].Value = dtRow["dch_cal"]; // 39 dch_cal + + command.ExecuteNonQuery(); + + CommitTran(connection); + } + } + catch (SQLiteException se) + { + if (se.ResultCode != SQLiteErrorCode.Constraint) + result = se.Message; + } + catch (Exception e) + { + result = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (result != "") throw new Exception(result); + } + } + } + + public static DataTable BmsDataSelectToDataTable(CommConfig aConfig, DateTime aDate, string qry) + { + string result = ""; + DataTable dtResult = null; + string ModelName = csConstData.MODEL_STR[aConfig.UartModelIndex]; + string dbFilename = String.Format(LogDbFileNameFormat + , String.Format("{0:yyMM}", aDate) + , String.Format("{0:yyMMdd}", aDate) + , ModelName + ); + string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false) + return dtResult; + if (File.Exists(dbFilePath) == false) + return dtResult; + + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + try + { + connection.Open(); + BeginTran(connection); + + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = String.Format("SELECT * FROM TModuleValue {0}", qry); + SQLiteDataAdapter adapter = new SQLiteDataAdapter(command); + adapter.AcceptChangesDuringFill = false; + dtResult = new DataTable(); + adapter.Fill(dtResult); + dtResult.TableName = "TModuleValue"; + + CommitTran(connection); + + System.Windows.Forms.Application.DoEvents(); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (result != "") throw new Exception(result); + } + } + return dtResult; + } + #endregion + + public class SQLITE + { + private SQLiteConnection con; + private SQLiteCommand cmd; + private SQLiteDataAdapter adapter; + + public SQLITE(string databasename) + { + con = new SQLiteConnection(string.Format("Data Source={0};Compress=True;", databasename)); + } + + public int Execute(string sql_statement) + { + con.Open(); + cmd = con.CreateCommand(); + cmd.CommandText = sql_statement; + int row_updated; + try + { + row_updated = cmd.ExecuteNonQuery(); + } + catch + { + con.Close(); + return 0; + } + con.Close(); + return row_updated; + } + public DataTable GetDataTable(string tablename) + { + DataTable DT = new DataTable(); + con.Open(); + cmd = con.CreateCommand(); + cmd.CommandText = string.Format("SELECT * FROM {0}", tablename); + adapter = new SQLiteDataAdapter(cmd); + adapter.AcceptChangesDuringFill = false; + adapter.Fill(DT); + con.Close(); + DT.TableName = tablename; + return DT; + } + public void SaveDataTable(DataTable DT) + { + try + { + Execute(string.Format("DELETE FROM {0}", DT.TableName)); + con.Open(); + cmd = con.CreateCommand(); + cmd.CommandText = string.Format("SELECT * FROM {0}", DT.TableName); + adapter = new SQLiteDataAdapter(cmd); + SQLiteCommandBuilder builder = new SQLiteCommandBuilder(adapter); + adapter.Update(DT); + con.Close(); + } + catch (Exception Ex) + { + MessageBox.Show(Ex.Message); + } + } + } + } +} diff --git a/LFP_Manager/Utils/csDBUtils.cs b/LFP_Manager/Utils/csDBUtils.cs new file mode 100644 index 0000000..2382116 --- /dev/null +++ b/LFP_Manager/Utils/csDBUtils.cs @@ -0,0 +1,1352 @@ +using LFP_Manager.DataStructure; +using System; +using System.Data; +using System.Data.SQLite; +using System.IO; +using System.Text; +using System.Windows.Forms; + +namespace LFP_Manager.Utils +{ + class csDbUtils + { + // Query - SELECT * FROM TABLE_NAME like('%neon%',field_name) - 문자를 포함하는 데이터 검색 + public static string DbFileName = @"LFPS-48100S-J_INV.db"; + public static string DbFilePathFormat = @"\db\"; + public static string DbFileNameFormat = @"\db\{0}_{1}.db"; + public static string DbSchemaTableFileName = @"\sql\DB_SCHEMA_TABLE.sql"; + public static string ModuleTableName = @"TModule"; + + public static string LogDbFilePath = @"\db"; + public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB"; + public static string LogDbSchemaTableFileName = @"\sql\LOG_DB_SCHEMA_TABLE.sql"; + + public static DateTime Delay(int ms) + { + DateTime thisMoment = DateTime.Now; + TimeSpan duration = new TimeSpan(0, 0, 0, 0, ms); + DateTime afterMoment = thisMoment.Add(duration); + + while (afterMoment >= thisMoment) + { + System.Windows.Forms.Application.DoEvents(); + + thisMoment = DateTime.Now; + } + + return DateTime.Now; + } + + //트랜잭션 시작 + public static void BeginTran(SQLiteConnection conn) + { + SQLiteCommand command = new SQLiteCommand("Begin", conn); + command.ExecuteNonQuery(); + command.Dispose(); + } + + //트랜잭션 완료 + public static void CommitTran(SQLiteConnection conn) + { + SQLiteCommand command = new SQLiteCommand("Commit", conn); + command.ExecuteNonQuery(); + command.Dispose(); + } + + #region CREATE DATABASE + + public static void DbCreate(string mSN, string bName) + { + string result = ""; + string dbFilename = String.Format(DbFileNameFormat, MakeLotNumber(mSN, bName), bName); + string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false) + Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath)); + + if (File.Exists(dbFilePath) == true) + { + //throw new Exception("Already have db file - Failed to create db file"); + return; + } + else + { + // Create database + SQLiteConnection.CreateFile(dbFilePath); + } + + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Create table + using (SQLiteCommand command = connection.CreateCommand()) + { + string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + DbSchemaTableFileName; + string query = File.ReadAllText(schemaFile); + + command.CommandText = query; + SQLiteDataReader reader = null; + reader = command.ExecuteReader(); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + connection.Close(); + if (result != "") throw new Exception(result); + } + } + return; + } + + public static void LogDbCreate(string aModel) + { + string result = ""; + string ModelName = aModel; + //public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB"; + string dbFilename = String.Format(LogDbFileNameFormat + , String.Format("{0:yyMM}", DateTime.Now) + , String.Format("{0:yyMMdd}", DateTime.Now) + , ModelName + ); + string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false) + Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath)); + + if (File.Exists(dbFilePath) == true) + { + //throw new Exception("Already have db file - Failed to create db file"); + return; + } + else + { + // Create database + SQLiteConnection.CreateFile(dbFilePath); + } + + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Create table + using (SQLiteCommand command = connection.CreateCommand()) + { + string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + LogDbSchemaTableFileName; + string query = File.ReadAllText(schemaFile); + + command.CommandText = query; + SQLiteDataReader reader = null; + reader = command.ExecuteReader(); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + connection.Close(); + if (result != "") throw new Exception(result); + } + } + return; + } + + public static void LogDbCreateNew(string aModel) + { + string result = ""; + string ModelName = aModel; + //public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB"; + string dbFilename = String.Format(LogDbFileNameFormat + , String.Format("{0:yyMM}", DateTime.Now) + , String.Format("{0:yyMMdd}", DateTime.Now) + , ModelName + ); + string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false) + Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilePath)); + + // Create database + SQLiteConnection.CreateFile(dbFilePath); + + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Create table + using (SQLiteCommand command = connection.CreateCommand()) + { + string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + LogDbSchemaTableFileName; + string query = File.ReadAllText(schemaFile); + + command.CommandText = query; + SQLiteDataReader reader = null; + reader = command.ExecuteReader(); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + connection.Close(); + if (result != "") throw new Exception(result); + } + } + return; + } + + #endregion + + #region MAKE LOT NUMBER + public static string MakeLotNumber(string mSN) + { + string LotNo = mSN.Substring(1, 11) + "000"; + return LotNo; + } + + public static string MakeLotNumber(string mSN, string bName) + { + string LotNo; + + if (bName == "BMCB_J") + LotNo = mSN.Substring(0, 10) + "0000"; + else + LotNo = mSN.Substring(1, 11) + "000"; + return LotNo; + } + + #endregion + + #region Excute Database + public static DataTable DbSqlExcute(string path, string query, bool create_db_flag = false) + { + string result = ""; + DataTable dtResult = null; + string dbFilename = Path.GetDirectoryName(path) + DbFileName; + + if (Directory.Exists(Path.GetDirectoryName(dbFilename)) == false) + Directory.CreateDirectory(Path.GetDirectoryName(dbFilename)); + + // Create database + if (File.Exists(dbFilename) == false) + { + if (create_db_flag == true) + SQLiteConnection.CreateFile(dbFilename); + else + throw new Exception("No database file - " + DbFileName); + } + + // Open database + string strConn = @"Data Source=" + dbFilename; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Create table + using (SQLiteCommand command = connection.CreateCommand()) + { + //command.CommandText = "CREATE TABLE File (Name text, Size bigint, Modified datetime);"; + command.CommandText = query; + SQLiteDataReader reader = null; + //command.ExecuteNonQuery(); + reader = command.ExecuteReader(); + dtResult = new DataTable(); + dtResult.Load(reader); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + connection.Close(); + if (result != "") throw new Exception(result); + } + } + return dtResult; + } + + public static DataTable DbSqlExcuteA1(string path, string query) + { + DataTable dtResult = null; + string dbFilename = System.IO.Path.GetDirectoryName(path) + DbFileName; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilename)) == false) + Directory.CreateDirectory(System.IO.Path.GetDirectoryName(dbFilename)); + + if (File.Exists(dbFilename) == false) + // Create database + SQLiteConnection.CreateFile(dbFilename); + + // Open database + string strConn = @"Data Source=" + dbFilename; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Excute Query + var adpt = new SQLiteDataAdapter(query, connection); + DataSet ds = new DataSet(); + adpt.Fill(ds); + + dtResult = ds.Tables[0]; + } + catch (Exception e) + { + throw e; + } + finally + { + connection.Close(); + } + } + return dtResult; + } + + public static DataTable DbSqlExcuteA(string lot, string query, string bName, bool create_db_flag = false) + { + string result = ""; + DataTable dtResult = new DataTable(); + string lotNo = lot; + string dbFilename = String.Format(DbFileNameFormat, lotNo, bName); + string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename; + + if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false) + { + if (create_db_flag) + Directory.CreateDirectory(Path.GetDirectoryName(dbFilePath)); + else + throw new Exception("No DB file path - " + Path.GetDirectoryName(dbFilePath)); + } + if (File.Exists(dbFilePath) == false) + { + if (create_db_flag) + SQLiteConnection.CreateFile(dbFilePath); + else + throw new Exception(String.Format("No DB file - DbSqlExcuteA ({0})", dbFilename)); + } + + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Excute Query + var adpt = new SQLiteDataAdapter(query, connection); + DataSet ds = new DataSet(); + adpt.Fill(ds); + if (ds.Tables.Count > 0) + dtResult = ds.Tables[0]; + } + catch (Exception ex) + { + result = ex.Message; + } + finally + { + connection.Close(); + if (result != "") throw new Exception(result); + } + } + return dtResult; + } + + public static DataTable DbSqlExcuteA2(string dbFileName, string query, bool create_db_flag = false) + { + string result = ""; + DataTable dtResult = new DataTable(); + string lotNo = dbFileName.Substring(0, 9); + string dbFilename = String.Format(DbFilePathFormat, lotNo) + dbFileName; + string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename; + + if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false) + { + if (create_db_flag) + Directory.CreateDirectory(Path.GetDirectoryName(dbFilePath)); + else + throw new Exception("No DB file path - " + Path.GetDirectoryName(dbFilePath)); + } + if (File.Exists(dbFilePath) == false) + { + if (create_db_flag) + SQLiteConnection.CreateFile(dbFilePath); + else + throw new Exception(String.Format("No DB file - DbSqlExcuteA ({0})", dbFilename)); + } + + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Excute Query + var adpt = new SQLiteDataAdapter(query, connection); + DataSet ds = new DataSet(); + adpt.Fill(ds); + if (ds.Tables.Count > 0) + dtResult = ds.Tables[0]; + } + catch (Exception ex) + { + result = ex.Message; + } + finally + { + connection.Close(); + if (result != "") throw new Exception(result); + } + } + return dtResult; + } + public static DataTable DbSqlExcuteA3(string dbFileName, string query, bool create_db_flag = false) + { + string result = ""; + DataTable dtResult = new DataTable(); + string dbFilePath = dbFileName; + + if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false) + { + if (create_db_flag) + Directory.CreateDirectory(Path.GetDirectoryName(dbFilePath)); + else + throw new Exception("No DB file path - " + Path.GetDirectoryName(dbFilePath)); + } + if (File.Exists(dbFilePath) == false) + { + if (create_db_flag) + SQLiteConnection.CreateFile(dbFilePath); + else + throw new Exception(String.Format("No DB file - DbSqlExcuteA ({0})", dbFileName)); + } + + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + connection.Open(); + try + { + // Excute Query + var adpt = new SQLiteDataAdapter(query, connection); + DataSet ds = new DataSet(); + adpt.Fill(ds); + if (ds.Tables.Count > 0) + dtResult = ds.Tables[0]; + } + catch (Exception ex) + { + result = ex.Message; + } + finally + { + connection.Close(); + if (result != "") throw new Exception(result); + } + } + return dtResult; + } + + #endregion + + #region BMS DATA INSERT AND UPDATE + + public static void BmsLogDataInsert(string ModelName, ref DeviceSystemData aSystemData, DateTime dateTime, int cvUnit) + { + string result = ""; + //string ModelName = csConstData.CAN_MODEL[aConfig.CanModelIndex]; + //public static string LogDbFileNameFormat = @"\{0}\{1}_{2}_LOG.DB"; + string dbFilename = String.Format(LogDbFileNameFormat + , String.Format("{0:yyMM}", DateTime.Now) + , String.Format("{0:yyMMdd}", DateTime.Now) + , ModelName + ); + string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename; + + if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false) + throw new Exception("No Log DB file path"); + if (File.Exists(dbFilePath) == false) + throw new Exception(String.Format("No Log DB file - BmsLogDataInsert ({0})", dbFilename)); + + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + try + { + connection.Open(); + BeginTran(connection); + + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = String.Format("INSERT INTO TModuleValue ("); + command.CommandText += "create_date" // 0 + + ", module_no" // 1 + + ", model_name" // 2 + + ", module_sn" // 3 + + ", fw_ver" // 4 + + ", comm_fail" // 5 + + ", op_status" // 6 + + ", alarm_status" // 7 + + ", warning" // 8 + + ", fault" // 9 + + ", module_voltage" // 10 + + ", module_current" // 11 + + ", module_soc" // 12 + + ", module_soh" // 13 + + ", module_cyclecount" // 14 + ; + for (int i = 0; i < aSystemData.cellQty; i++) + { + command.CommandText += String.Format(", cell_voltage_{0:00}", i + 1); // 14 ~ 28; 15 cells + } + for (int i = 0; i < aSystemData.tempQty; i++) + { + command.CommandText += String.Format(", temperature_{0:00}", i + 1); // 29 ~ 32; 6 temps + } + command.CommandText += "" + + ", ext1_temp" // 35 + + ", ext2_temp" // 35 + + ", chg_option" // 35 + + ")" + + " Values ("; + + int total = 15 + aSystemData.cellQty + aSystemData.tempQty + 3; + + for (int i = 0; i < (total - 1); i++) command.CommandText += "?,"; + command.CommandText += "?);"; + + SQLiteParameter[] p = new SQLiteParameter[total]; + + for (int i = 0; i < total; i++) + { + if (i == 0) + p[i] = new SQLiteParameter(DbType.DateTime); + else + p[i] = new SQLiteParameter(); + command.Parameters.Add(p[i]); + } + + int j = 0; + p[j++].Value = dateTime; // 0 create_date + p[j++].Value = aSystemData.mNo; // 1 Module No + p[j++].Value = aSystemData.Information.ModelName; // 2 model_name + p[j++].Value = aSystemData.Information.HwSerialNumber; // 3 module_sn + p[j++].Value = aSystemData.Information.SwProductRev; // 4 fw_ver + + p[j++].Value = aSystemData.ShelfCommFail; // 5 comm_fail + p[j++].Value = aSystemData.StatusData.status; // 6 op_status + p[j++].Value = aSystemData.StatusData.batteryStatus; // 7 alarm_status + p[j++].Value = aSystemData.StatusData.warning; // 8 warning + p[j++].Value = aSystemData.StatusData.protection; // 9 fault + p[j++].Value = ((float)aSystemData.ValueData.voltageOfPack / 10).ToString(); // 10 module_voltage + p[j++].Value = ((float)aSystemData.ValueData.current / 10).ToString(); // 11 module_current + p[j++].Value = ((float)aSystemData.ValueData.rSOC / 10).ToString(); // 12 module_soc + p[j++].Value = ((float)aSystemData.ValueData.stateOfHealth / 10).ToString(); // 13 module_soh + p[j++].Value = ((float)aSystemData.ValueData.cycleCount / 1).ToString(); // 14 module_soh + + for (int i = 0; i < aSystemData.cellQty; i++) + { + p[j++].Value = ((float)aSystemData.ValueData.CellVoltage[i] / cvUnit).ToString(); // 15 cell_voltage_01 + } + for (int i = 0; i < aSystemData.tempQty; i++) + { + p[j++].Value = ((float)aSystemData.ValueData.CellTemperature[i] / 10).ToString(); // 30 temperature_01 + } + p[j++].Value = ((float)aSystemData.ValueData.Ext1Temperature / 10).ToString(); // 34 temperature_ext1 - FET Temp + p[j++].Value = ((float)aSystemData.ValueData.Ext2Temperature / 10).ToString(); // 35 temperature_ext2 - Lmt Temp + + p[j++].Value = aSystemData.CalibrationData.Current.ChargeOption.ToString(); // 36 chg_option + + command.ExecuteNonQuery(); + + CommitTran(connection); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (result != "") throw new Exception(result); + } + } + } + + public static DataTable GetDataTable(string bSN, string aTableName, string bName) + { + string result = ""; + DataTable dtResult = null; + string dbFilename = String.Format(DbFileNameFormat, MakeLotNumber(bSN, bName), bName); + string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + dbFilename; + + if (Directory.Exists(Path.GetDirectoryName(dbFilePath)) == false) + throw new Exception("No DB file path"); + if (File.Exists(dbFilePath) == false) + throw new Exception("No DB file"); + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + Forms.fmxWait WaitForm = new Forms.fmxWait(); + WaitForm.StartPosition = FormStartPosition.CenterScreen; + try + { + connection.Open(); + BeginTran(connection); + + WaitForm.Show(); + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = String.Format("SELECT * FROM {0}", aTableName); + SQLiteDataAdapter adapter = new SQLiteDataAdapter(command); + adapter.AcceptChangesDuringFill = false; + dtResult = new DataTable(); + adapter.Fill(dtResult); + dtResult.TableName = aTableName; + + CommitTran(connection); + + System.Windows.Forms.Application.DoEvents(); + WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1)); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (WaitForm != null) + WaitForm.Close(); + if (result != "") throw new Exception(result); + } + } + return dtResult; + } + + public static DataTable GetDataTableBySelect(string bSN, string sql, string aTableName, string bName) + { + string result = ""; + DataTable dtResult = null; + string dbFilename = String.Format(DbFileNameFormat, MakeLotNumber(bSN, bName), bName); + string dbFilePath = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + dbFilename; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false) + throw new Exception("No DB file path"); + if (File.Exists(dbFilePath) == false) + throw new Exception(String.Format("No DB file - {0}", dbFilePath)); + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + Forms.fmxWait WaitForm = new Forms.fmxWait(); + WaitForm.StartPosition = FormStartPosition.CenterScreen; + try + { + connection.Open(); + BeginTran(connection); + + WaitForm.Show(); + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = sql; + SQLiteDataAdapter adapter = new SQLiteDataAdapter(command); + adapter.AcceptChangesDuringFill = false; + dtResult = new DataTable(); + adapter.Fill(dtResult); + dtResult.TableName = aTableName; + + System.Windows.Forms.Application.DoEvents(); + WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1)); + + CommitTran(connection); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (WaitForm != null) + WaitForm.Close(); + if (result != "") + throw new Exception(result); + } + } + return dtResult; + } + + public static DataTable GetDataTableBySelectFromDbName(string dbFileName, string sql, string aTableName, string bName) + { + string result = ""; + DataTable dtResult = null; + + string lotNo = csDbUtils.MakeLotNumber(dbFileName.Substring(0, 8), bName); + string dbFilename = String.Format(@"\db\{0}\{1}", lotNo, dbFileName); + string dbFilePath = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + dbFilename; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false) + throw new Exception("No DB file path"); + if (File.Exists(dbFilePath) == false) + throw new Exception(String.Format("No DB file - {0}", dbFilePath)); + // Open database + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + Forms.fmxWait WaitForm = new Forms.fmxWait(); + WaitForm.StartPosition = FormStartPosition.CenterScreen; + try + { + connection.Open(); + BeginTran(connection); + + WaitForm.Show(); + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = sql; + SQLiteDataAdapter adapter = new SQLiteDataAdapter(command); + adapter.AcceptChangesDuringFill = false; + dtResult = new DataTable(); + adapter.Fill(dtResult); + dtResult.TableName = aTableName; + + System.Windows.Forms.Application.DoEvents(); + WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1)); + + CommitTran(connection); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (WaitForm != null) + WaitForm.Close(); + if (result != "") + throw new Exception(result); + } + } + return dtResult; + } + + public static DataTable GetDataTableByFileName(string fileName, string sql, string aTableName) + { + string result = ""; + DataTable dtResult = null; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(fileName)) == false) + throw new Exception("No DB file path"); + if (File.Exists(fileName) == false) + throw new Exception("No DB file"); + // Open database + string strConn = @"Data Source=" + fileName; + using (var connection = new SQLiteConnection(strConn)) + { + Forms.fmxWait WaitForm = new Forms.fmxWait(); + WaitForm.StartPosition = FormStartPosition.CenterScreen; + try + { + connection.Open(); + BeginTran(connection); + + WaitForm.Show(); + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = sql; + SQLiteDataAdapter adapter = new SQLiteDataAdapter(command); + adapter.AcceptChangesDuringFill = false; + dtResult = new DataTable(); + adapter.Fill(dtResult); + dtResult.TableName = aTableName; + + System.Windows.Forms.Application.DoEvents(); + WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1)); + + CommitTran(connection); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (WaitForm != null) + WaitForm.Close(); + if (result != "") + throw new Exception(result); + } + } + return dtResult; + } + + public static DataTable GetModuleMatchTableByFgNo(string fg_no, string bName) + { + DataTable dtResult = null; + + int a, b, c; + a = Convert.ToInt32(fg_no); + b = a / 300 + 1; + c = a % 300; + if ((c == 0) && (b > 0)) b--; + string mSN = String.Format("1{0:yy}{1:00}{2:000}", DateTime.Now, b, c); + string lotNo = csDbUtils.MakeLotNumber(mSN, bName); + string dbfilePath = Path.GetDirectoryName(Application.ExecutablePath) + String.Format(DbFilePathFormat, lotNo); + string[] filePaths = Directory.GetFiles(dbfilePath, "*.db"); + + if (filePaths.Length > 0) + { + for (int i = 0; i < filePaths.Length; i++) + { + string fileName = Path.GetFileName(filePaths[i]); + byte[] bfilName = Encoding.ASCII.GetBytes(fileName); + + dtResult = GetDataTableByFileName(filePaths[i], String.Format("SELECT * FROM TModuleMatch where fg_no={0}", fg_no), "TModuleMatch"); + if ((dtResult != null) && (dtResult.Rows.Count == 1)) break; + } + } + if ((dtResult == null) || (dtResult.Rows.Count == 0)) + throw new Exception(String.Format("No match data - {0}", fg_no)); + + return dtResult; + } + + public static void BmsPcbMatchDataInsert(string dbFileName, DataRow sRow) + { + string result = ""; + int resultCode = (int)SQLiteErrorCode.Unknown; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFileName)) == false) + throw new Exception("No DB file path"); + if (File.Exists(dbFileName) == false) + throw new Exception(String.Format("No DB file - BmsDataInsert ({0})", dbFileName)); + + // Open database + string strConn = @"Data Source=" + dbFileName; + using (var connection = new SQLiteConnection(strConn)) + { + Forms.fmxWait WaitForm = new Forms.fmxWait + { + StartPosition = FormStartPosition.CenterScreen + }; + + try + { + connection.Open(); + BeginTran(connection); + + WaitForm.Show(); + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = "INSERT INTO" + + " TBmsPcbMatchTable" + + " (PCB1_SERIAL_NUMBER, MODULE_SERIAL_NUMBER, create_date, modify_date)" // 2 + + " Values (?,?,?,?);"; + SQLiteParameter[] p = new SQLiteParameter[4]; + + for (int i = 0; i < 4; i++) + { + p[i] = new SQLiteParameter(); + command.Parameters.Add(p[i]); + } + + int j = 0; + p[j++].Value = sRow["PCB1_SERIAL_NUMBER"]; // pcb_sn + p[j++].Value = sRow["MODULE_SERIAL_NUMBER"]; // module_sn + p[j++].Value = DateTime.Now; // create_date + p[j++].Value = DateTime.Now; // modify_date + + command.ExecuteNonQuery(); + + WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1)); + System.Windows.Forms.Application.DoEvents(); + + CommitTran(connection); + } + } + catch (SQLiteException sqle) + { + // Handle DB exception + result = sqle.Message; + resultCode = sqle.ErrorCode; + } + catch (IndexOutOfRangeException ie) + { + // If you think there might be a problem with index range in the loop, for example + result = ie.Message; + resultCode = 9999; + } + catch (Exception ex) + { + result = ex.Message; + resultCode = 9998; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (WaitForm != null) + WaitForm.Close(); + if (result != "") + { + if (resultCode == 9998) throw new Exception(result); + else if (resultCode == 9999) throw new IndexOutOfRangeException(result); + else throw new SQLiteException((SQLiteErrorCode)resultCode, result); + } + } + } + } + + public static void ErrorLogInsert(string dbFileName, DataRow sRow, string Process, string ErrType, string ErrMsg) + { + string result = ""; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFileName)) == false) + throw new Exception("No DB file path"); + if (File.Exists(dbFileName) == false) + throw new Exception(String.Format("No DB file - ErrorLogInsert ({0})", dbFileName)); + + // Open database + string strConn = @"Data Source=" + dbFileName; + using (var connection = new SQLiteConnection(strConn)) + { + try + { + connection.Open(); + BeginTran(connection); + + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = "INSERT INTO" + + " TErrorLogTable" + + " (create_date, MODULE_SERIAL_NUMBER, PCB1_SERIAL_NUMBER, PROCESS, ERROR_TYPE, ERROR_MSG)" // 2 + + " Values (?,?,?,?,?,?);"; + SQLiteParameter[] p = new SQLiteParameter[6]; + + for (int i = 0; i < 6; i++) + { + p[i] = new SQLiteParameter(); + command.Parameters.Add(p[i]); + } + + int j = 0; + p[j++].Value = DateTime.Now; // create_date + p[j++].Value = sRow["MODULE_SERIAL_NUMBER"]; // module_sn + p[j++].Value = sRow["PCB1_SERIAL_NUMBER"]; // pcb_sn + p[j++].Value = Process; // process + p[j++].Value = ErrType; // error type + p[j++].Value = ErrMsg; // error message + + command.ExecuteNonQuery(); + + CommitTran(connection); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (result != "") throw new Exception(result); + } + } + } + + #endregion + + #region SELECT QUARY + + public static int DbQuaryExcuteToDataTable(string dbFileName, string Quary, ref DataTable rDT) + { + int result = 0; + string resultStr = String.Empty; + + string strConn = @"Data Source=" + dbFileName; + using (var connection = new SQLiteConnection(strConn)) + { + try + { + connection.Open(); + BeginTran(connection); + + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = Quary; + SQLiteDataAdapter adapter = new SQLiteDataAdapter(command); + adapter.AcceptChangesDuringFill = false; + rDT = new DataTable(); + adapter.Fill(rDT); + //rDT.TableName = "TModuleValue"; + + CommitTran(connection); + + result = rDT.Rows.Count; + + System.Windows.Forms.Application.DoEvents(); + } + } + catch (Exception e) + { + resultStr = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (resultStr != "") throw new Exception(resultStr); + } + } + return result; + } + + public static void CreateLogDbFile(string dbFileName) + { + string result = ""; + + if (Directory.Exists(Path.GetDirectoryName(dbFileName)) == false) + throw new Exception("No DB file path"); + if (File.Exists(dbFileName) == true) + throw new Exception(String.Format("Already have DB file - DbQuaryExcuteToDbFile({0})", dbFileName)); + + // Create database + SQLiteConnection.CreateFile(dbFileName); + + // Open database + string strConn = @"Data Source=" + dbFileName; + using (var connection = new SQLiteConnection(strConn)) + { + Forms.fmxWait WaitForm = new Forms.fmxWait(); + WaitForm.StartPosition = FormStartPosition.CenterScreen; + try + { + connection.Open(); + BeginTran(connection); + + WaitForm.Show(); + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + string schemaFile = Path.GetDirectoryName(Application.ExecutablePath) + LogDbSchemaTableFileName; + string query = File.ReadAllText(schemaFile); + + command.CommandText = query; + SQLiteDataReader reader = null; + reader = command.ExecuteReader(); + + WaitForm.SetDescription(String.Format("{0}//{1}", 1, 1)); + System.Windows.Forms.Application.DoEvents(); + + CommitTran(connection); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (WaitForm != null) + WaitForm.Close(); + if (result != "") throw new Exception(result); + } + } + } + + public static void DbInsertDataToDbFile(string dbFileName, DataRow dtRow) + { + string result = ""; + + if (Directory.Exists(Path.GetDirectoryName(dbFileName)) == false) + throw new Exception("No DB file path"); + if (File.Exists(dbFileName) == false) + throw new Exception(String.Format("No DB file - DbInsertDataToDbFile({0})", dbFileName)); + + // Open database + string strConn = @"Data Source=" + dbFileName; + using (var connection = new SQLiteConnection(strConn)) + { + try + { + connection.Open(); + BeginTran(connection); + + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = String.Format("INSERT INTO TModuleValue ("); + command.CommandText += "create_date" // 0 + + ", module_no" // 1 + + ", pcb_sn" // 2 + + ", module_sn" // 3 + + ", fw_ver" // 4 + + ", comm_fail" // 5 + + ", op_status" // 6 + + ", alarm_status" // 7 + + ", warning" // 8 + + ", fault" // 9 + + ", module_voltage" // 10 + + ", module_current" // 11 + + ", module_soc" // 12 + + ", module_soh" // 13 + ; + for (int i = 0; i < 15; i++) + { + command.CommandText += String.Format(", cell_voltage_{0:00}", i + 1); // 14 ~ 28; 15 cells + } + for (int i = 0; i < 6; i++) + { + command.CommandText += String.Format(", temperature_{0:00}", i + 1); // 29 ~ 34; 6 temps + } + command.CommandText += "" + + ", chg_option" // 35 + + ", chg_cal" // 36 + + ", dch_cal" // 37 + + ")" + + " Values ("; + + int total = dtRow.Table.Columns.Count; + + for (int i = 0; i < (total - 1); i++) command.CommandText += "?,"; + command.CommandText += "?);"; + + SQLiteParameter[] p = new SQLiteParameter[total]; + + for (int i = 0; i < total; i++) + { + if (i == 0) + p[i] = new SQLiteParameter(DbType.DateTime); + else + p[i] = new SQLiteParameter(); + command.Parameters.Add(p[i]); + } + + int j = 0; + p[j++].Value = String.Format("{0:yyyy/MM/dd HH:mm:ss}", dtRow["create_date"]); // 0 create_date + p[j++].Value = dtRow["module_no"]; // 1 module_no + p[j++].Value = dtRow["pcb_sn"]; // 2 pcb_sn + p[j++].Value = dtRow["module_sn"]; // 3 module_sn + p[j++].Value = dtRow["fw_ver"]; // 4 fw_ver + p[j++].Value = dtRow["comm_fail"]; // 5 comm_fail + p[j++].Value = dtRow["op_status"]; // 6 op_status + p[j++].Value = dtRow["alarm_status"]; // 7 alarm_status + p[j++].Value = dtRow["warning"]; // 8 warning + p[j++].Value = dtRow["fault"]; // 9 fault + p[j++].Value = dtRow["module_voltage"]; // 10 module_voltage + p[j++].Value = dtRow["module_current"]; // 11 module_current + p[j++].Value = dtRow["module_soc"]; // 12 module_soc + p[j++].Value = dtRow["module_soh"]; // 13 module_soh + + for (int i = 0; i < 15; i++) + { + p[j++].Value = dtRow[String.Format("cell_voltage_{0:00}", i + 1)]; // 14 cell_voltage_01 28 + } + for (int i = 0; i < 6; i++) + { + p[j++].Value = dtRow[String.Format("temperature_{0:00}", i + 1)]; // 29 cell_voltage_01 36 + } + + p[j++].Value = dtRow["chg_option"]; // 37 chg_option + p[j++].Value = dtRow["chg_cal"]; // 38 chg_cal + p[j++].Value = dtRow["dch_cal"]; // 39 dch_cal + + command.ExecuteNonQuery(); + + CommitTran(connection); + } + } + catch (SQLiteException se) + { + if (se.ResultCode != SQLiteErrorCode.Constraint) + result = se.Message; + } + catch (Exception e) + { + result = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (result != "") throw new Exception(result); + } + } + } + + public static DataTable BmsDataSelectToDataTable(CommConfig aConfig, DateTime aDate, string qry) + { + string result = ""; + DataTable dtResult = null; + string ModelName = csConstData.MODEL_STR[aConfig.UartModelIndex]; + string dbFilename = String.Format(LogDbFileNameFormat + , String.Format("{0:yyMM}", aDate) + , String.Format("{0:yyMMdd}", aDate) + , ModelName + ); + string dbFilePath = Path.GetDirectoryName(Application.ExecutablePath) + LogDbFilePath + dbFilename; + + if (Directory.Exists(System.IO.Path.GetDirectoryName(dbFilePath)) == false) + return dtResult; + if (File.Exists(dbFilePath) == false) + return dtResult; + + string strConn = @"Data Source=" + dbFilePath; + using (var connection = new SQLiteConnection(strConn)) + { + try + { + connection.Open(); + BeginTran(connection); + + // Insert data + using (SQLiteCommand command = connection.CreateCommand()) + { + //sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");"; + command.CommandText = String.Format("SELECT * FROM TModuleValue {0}", qry); + SQLiteDataAdapter adapter = new SQLiteDataAdapter(command); + adapter.AcceptChangesDuringFill = false; + dtResult = new DataTable(); + adapter.Fill(dtResult); + dtResult.TableName = "TModuleValue"; + + CommitTran(connection); + + System.Windows.Forms.Application.DoEvents(); + } + } + catch (Exception e) + { + result = e.Message; + } + finally + { + if (connection.State == ConnectionState.Open) + connection.Close(); + if (result != "") throw new Exception(result); + } + } + return dtResult; + } + #endregion + + public class SQLITE + { + private SQLiteConnection con; + private SQLiteCommand cmd; + private SQLiteDataAdapter adapter; + + public SQLITE(string databasename) + { + con = new SQLiteConnection(string.Format("Data Source={0};Compress=True;", databasename)); + } + + public int Execute(string sql_statement) + { + con.Open(); + cmd = con.CreateCommand(); + cmd.CommandText = sql_statement; + int row_updated; + try + { + row_updated = cmd.ExecuteNonQuery(); + } + catch + { + con.Close(); + return 0; + } + con.Close(); + return row_updated; + } + public DataTable GetDataTable(string tablename) + { + DataTable DT = new DataTable(); + con.Open(); + cmd = con.CreateCommand(); + cmd.CommandText = string.Format("SELECT * FROM {0}", tablename); + adapter = new SQLiteDataAdapter(cmd); + adapter.AcceptChangesDuringFill = false; + adapter.Fill(DT); + con.Close(); + DT.TableName = tablename; + return DT; + } + public void SaveDataTable(DataTable DT) + { + try + { + Execute(string.Format("DELETE FROM {0}", DT.TableName)); + con.Open(); + cmd = con.CreateCommand(); + cmd.CommandText = string.Format("SELECT * FROM {0}", DT.TableName); + adapter = new SQLiteDataAdapter(cmd); + SQLiteCommandBuilder builder = new SQLiteCommandBuilder(adapter); + adapter.Update(DT); + con.Close(); + } + catch (Exception Ex) + { + MessageBox.Show(Ex.Message); + } + } + } + } +} diff --git a/LFP_Manager/Utils/csExcelControl.cs b/LFP_Manager/Utils/csExcelControl.cs new file mode 100644 index 0000000..bd9d7ee --- /dev/null +++ b/LFP_Manager/Utils/csExcelControl.cs @@ -0,0 +1,299 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; +using System.Data; +using System.Data.OleDb; + +namespace LFP_Manager.Utils +{ + class csExcelControl + { + /// + /// Excel Database Control Class + /// version 0.1.5 + /// + /// + /// 자유배포 + /// 황현우 [ LiA's Blog ] + /// http://blog.naver.com/exila + /// CoreBank Co.,Ltd. + /// 불펌금지효.. 만든 사람의 성의좀 생각을..-_-;; + /// + /*--------------------------------------------------------------------- + * Connection String 에는 어마어마한 옵션들이.. 주로 영문 사이트이긴 + * 하지만 좀더 상세한 제어를 원한다면 OleDB Connection String 옵션과 + * Extended Properties 에 들어가는 Excel Option 들을 살펴보는 것이 좋을 + * 듯.. HDR = 첫줄을 헤더로 사용할 것인지,IMEX = 데이터유형적용여부 등등 + *-------------------------------------------------------------------*/ + + // 확장명 XLS (Excel 97~2003 용) + private const string ConnectStrFrm_Excel97_2003 = + "Provider=Microsoft.Jet.OLEDB.4.0;" + + "Data Source=\"{0}\";" + + "Mode=ReadWrite|Share Deny None;" + + "Extended Properties='Excel 8.0; HDR={1}; IMEX={2}';" + + "Persist Security Info=False"; + + // 확장명 XLSX (Excel 2007 이상용) + private const string ConnectStrFrm_Excel = + "Provider=Microsoft.ACE.OLEDB.12.0;" + + "Data Source=\"{0}\";" + + "Mode=ReadWrite|Share Deny None;" + + "Extended Properties='Excel 12.0; HDR={1}; IMEX={2}';" + + "Persist Security Info=False"; + + + /// + /// Excel 파일의 형태를 반환한다. + /// -2 : Error + /// -1 : 엑셀파일아님 + /// 0 : 97-2003 엑셀 파일 (xls)0 + /// 1 : 2007 이상 파일 (xlsx) + /// + /// + /// Excel File 명 전체 경로입니다. + /// + public static int ExcelFileType(string XlsFile) + { + byte[,] ExcelHeader = { + { 0xD0, 0xCF, 0x11, 0xE0, 0xA1 }, // XLS File Header + { 0x50, 0x4B, 0x03, 0x04, 0x14 } // XLSX File Header + }; + + // result -2 = error, -1 = not excel , 0 = xls , 1 = xlsx + int result = -1; + FileInfo FI = new FileInfo(XlsFile); + FileStream FS = FI.Open(FileMode.Open); + + try + { + byte[] FH = new byte[5]; + FS.Read(FH, 0, 5); + for (int i = 0; i < 2; i++) + { + for (int j = 0; j < 5; j++) + { + if (FH[j] != ExcelHeader[i, j]) break; + else if (j == 4) result = i; + } + if (result >= 0) break; + } + } + catch + { + result = (-2); + //throw e; + } + finally + { + FS.Close(); + } + return result; + } + + /// + /// Excel 파일을 DataSet 으로 변환하여 반환한다. + /// + /// + /// Excel File 명 PullPath + /// + /// + /// 첫번째 줄을 Field 명으로 사용할 것이지 여부 + /// + private static DataSet OpenExcel(string FileName, bool UseHeader) + { + DataSet DS = null; + + string[] HDROpt = { "NO", "YES" }; + string HDR = ""; + string ConnStr = ""; + + if (UseHeader) + HDR = HDROpt[1]; + else + HDR = HDROpt[0]; + + int ExcelType = ExcelFileType(FileName); + switch (ExcelType) + { + case (-2): throw new Exception(FileName + "의 형식검사중 오류가 발생하였습니다."); // An error occurred during type inspection + case (-1): throw new Exception(FileName + "은 엑셀 파일형식이 아닙니다."); // Is not an Excel file format. + case ( 0): ConnStr = string.Format(ConnectStrFrm_Excel97_2003, FileName, HDR, "1"); break; + case ( 1): ConnStr = string.Format(ConnectStrFrm_Excel, FileName, HDR, "1"); break; + } + + OleDbConnection OleDBConn = null; + OleDbDataAdapter OleDBAdap = null; + DataTable Schema; + + try + { + OleDBConn = new OleDbConnection(ConnStr); + OleDBConn.Open(); + + Schema = OleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); + + DS = new DataSet(); + + foreach (DataRow DR in Schema.Rows) + { + OleDBAdap = new OleDbDataAdapter(DR["TABLE_NAME"].ToString(), OleDBConn); + + OleDBAdap.SelectCommand.CommandType = CommandType.TableDirect; + OleDBAdap.AcceptChangesDuringFill = false; + + string TableName = DR["TABLE_NAME"].ToString().Replace("$", String.Empty).Replace("'", String.Empty); + + if (DR["TABLE_NAME"].ToString().Contains("$")) OleDBAdap.Fill(DS, TableName); + } + } + catch (Exception e) + { + throw e; + } + finally + { + if (OleDBConn != null) OleDBConn.Close(); + } + return DS; + } + + /// + /// DataSet 을 Excel 파일로 저장한다. + /// + /// + /// Excel File 명 PullPath + /// + /// + /// Excel 로 저장할 대상 DataSet 객체. + /// + /// + /// 동일한 파일명이 있을 때 삭제 할 것인지 여부, 파일이 있고 false 면 저장안하고 그냥 false 를 리턴. + /// + /// + /// xls 형태로 저장할 것인지 여부, false 이면 xlsx 형태로 저장함. + /// + private static bool SaveExcel(string FileName, DataSet DS, bool ExistDel, bool OldExcel) + { + bool result = true; + + if (File.Exists(FileName)) + if (ExistDel) File.Delete(FileName); + else return result; + + string TempFile = FileName; + // 파일 확장자가 xls 이나 xlsx 가 아니면 아예 파일을 안만들어서 + // 템프파일로 생성후 지정한 파일명으로 변경.. + + OleDbConnection OleDBConn = null; + + try + { + OleDbCommand Cmd = null; + string ConnStr = ""; + + if (OldExcel) + { + TempFile = TempFile + ".xls"; + ConnStr = string.Format(ConnectStrFrm_Excel97_2003, TempFile, "YES", "0"); + } + else + { + TempFile = TempFile + ".xlsx"; + ConnStr = string.Format(ConnectStrFrm_Excel, TempFile, "YES", "0"); + } + + OleDBConn = new OleDbConnection(ConnStr); + OleDBConn.Open(); + + // Create Table(s).. : 테이블 단위 처리 + foreach (DataTable DT in DS.Tables) + { + String TableName = DT.TableName; + + StringBuilder FldsInfo = new StringBuilder(); + StringBuilder Flds = new StringBuilder(); + + // Create Field(s) String : 현재 테이블의 Field 명 생성 + foreach (DataColumn Column in DT.Columns) + { + if (FldsInfo.Length > 0) + { + FldsInfo.Append(","); + Flds.Append(","); + } + + FldsInfo.Append("[" + Column.ColumnName.Replace("'", "''") + "] CHAR(255)"); + Flds.Append(Column.ColumnName.Replace("'", "''")); + } + + // Table Create + Cmd = new OleDbCommand("CREATE TABLE " + TableName + "(" + FldsInfo.ToString() + ")", OleDBConn); + Cmd.ExecuteNonQuery(); + + // Insert Data + foreach (DataRow DR in DT.Rows) + { + StringBuilder Values = new StringBuilder(); + foreach (DataColumn Column in DT.Columns) + { + if (Values.Length > 0) Values.Append(","); + Values.Append("'" + DR[Column.ColumnName].ToString().Replace("'", "''") + "'"); + } + + Cmd = new OleDbCommand( + "INSERT INTO [" + TableName + "$]" + + "(" + Flds.ToString() + ") " + + "VALUES (" + Values.ToString() + ")", + OleDBConn); + Cmd.ExecuteNonQuery(); + } + } + } + catch (Exception) + { + result = false; + } + finally + { + if (OleDBConn != null) OleDBConn.Close(); + try + { + if (File.Exists(TempFile)) + { + File.Move(TempFile, FileName); + } + } + catch { } + } + return result; + } + + /// + /// Excel 파일을 DataSet 으로 변환하여 반환한다. + /// + /// + /// 읽어올 Excel File 명(전체경로)입니다. + /// + public static DataSet OpenExcelDB(string ExcelFile) + { + return OpenExcel(ExcelFile, true); + } + + /// + /// DataSet 을 Excel 파일로 저장한다. 동일 파일명이 있으면 Overwrite 됩니다. + /// + /// + /// 저장할 Excel File 명(전체경로)입니다. + /// + /// + /// 저장할 대상 DataSet 입니다. + /// + public static bool SaveExcelDB(string ExcelFile, DataSet DS) + { + return SaveExcel(ExcelFile, DS, true, false); + } + } +} diff --git a/LFP_Manager/Utils/csLog.cs b/LFP_Manager/Utils/csLog.cs new file mode 100644 index 0000000..dc5e487 --- /dev/null +++ b/LFP_Manager/Utils/csLog.cs @@ -0,0 +1,567 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; +using System.Runtime.InteropServices; + +using LFP_Manager.DataStructure; + +using log4net; +using log4net.Appender; +using log4net.Layout; +using log4net.Repository.Hierarchy; + +namespace LFP_Manager.Utils +{ + public class csL4Logger + { + private static csL4Logger LoggerInstance; + + public ILog log; + public RollingFileAppender rollingAppender; + public PatternLayout layout; + public log4net.Filter.LoggerMatchFilter lmf; + + public static csL4Logger GetInstance() + { + if (LoggerInstance == null) + { + LoggerInstance = new csL4Logger(); + } + return LoggerInstance; + } + + public csL4Logger() + { + string FilePath = AppDomain.CurrentDomain.BaseDirectory + "\\Log\\App.log"; // 실행폴더 아래에 Log폴더 + + Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository(); + hierarchy.Configured = true; + + RollingFileAppender rollingAppender = new RollingFileAppender(); + rollingAppender.Name = "logger"; + rollingAppender.File = FilePath; // 로그파일 이름 + rollingAppender.AppendToFile = true; + + rollingAppender.StaticLogFileName = true; + rollingAppender.CountDirection = 1; + rollingAppender.RollingStyle = RollingFileAppender.RollingMode.Date; + rollingAppender.DatePattern = "_yyyyMMdd\".log\""; // 날짜가 변경되면 이전 로그에 붙은 이름 + + PatternLayout layout = new PatternLayout("%date [%-5level] %message%newline"); // 로그출력 포맷 + + rollingAppender.Layout = layout; + + hierarchy.Root.AddAppender(rollingAppender); + rollingAppender.ActivateOptions(); + hierarchy.Root.Level = log4net.Core.Level.All; + + log = LogManager.GetLogger("logger"); + Logger l = (Logger)log.Logger; + } + + public void AddDebug(string LogMsg) + { + log.Debug(LogMsg); + } + + public void AddError(string LogMsg) + { + log.Error(LogMsg); + } + + public void Close() + { + LogManager.Shutdown(); + } + } + + class csLog + { + private static string SYSTEMLOG_FILE_DIR_M = "\\log\\systemlog"; + private static string SYSTEMLOG_FILE_DIR = "\\log\\systemlog"; + + private static string DB_FILE_DIR = @"\db"; + + public static string GetLogFolder(string AppPath) + { + string path = System.IO.Path.GetDirectoryName(AppPath); + + if (Directory.Exists(path + SYSTEMLOG_FILE_DIR_M) == false) + Directory.CreateDirectory(path + SYSTEMLOG_FILE_DIR_M); + + return path + SYSTEMLOG_FILE_DIR_M; + } + + public static string GetDbFolder(string AppPath) + { + string path = System.IO.Path.GetDirectoryName(AppPath); + + if (Directory.Exists(path + DB_FILE_DIR) == false) + Directory.CreateDirectory(path + DB_FILE_DIR); + + return path + DB_FILE_DIR; + } + + public static void SystemDataLog(int RackID, CommConfig sConfig, DeviceSystemData sData, DateTime aTime, string AppPath) + { + SYSTEMLOG_FILE_DIR = String.Format("{0}\\SHELF{1}\\{2}", "\\log\\systemlog", RackID, String.Format("{0:yyyyMM}", aTime)); + + FileStream logFile = null; + string path = System.IO.Path.GetDirectoryName(AppPath); + string FileName = String.Format(path + SYSTEMLOG_FILE_DIR + "\\SHELF{0}_LOG_{1}.csv", RackID, String.Format("{0:yyMMdd}", aTime)); + byte[] logData; + + if (Directory.Exists(path + SYSTEMLOG_FILE_DIR) == false) + Directory.CreateDirectory(path + SYSTEMLOG_FILE_DIR); + + if (File.Exists(FileName) == false) + { + logFile = new FileStream(FileName, FileMode.CreateNew, FileAccess.ReadWrite); + logData = WriteDataHeader(aTime, sData); + logFile.Write(logData, 0, logData.Length); + logFile.Close(); + } + + logFile = null; + //logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite); + logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite); + + if (logFile != null) + { + logFile.Seek(0, SeekOrigin.End); + logData = WriteData(aTime, sConfig, sData); + logFile.Write(logData, 0, logData.Length); + logFile.Close(); + } + } + + public static void SystemTotalDataLog(CommConfig sConfig, DeviceSystemTotalData tData, DateTime aTime, string AppPath, string LogFileName) + { + SYSTEMLOG_FILE_DIR = String.Format("{0}\\MAIN\\{1}", "\\log\\systemlog", String.Format("{0:yyyyMM}", aTime)); + + FileStream logFile = null; + string path = System.IO.Path.GetDirectoryName(AppPath); + //string FileName = String.Format(path + SYSTEMLOG_FILE_DIR + "\\SHELF{0}_LOG_{1}.csv", RackID, String.Format("{0:yyMMdd}", aTime)); + string FileName = String.Format(path + SYSTEMLOG_FILE_DIR + "\\MAIN_LOG_{0}.csv", LogFileName); + byte[] logData; + + if (Directory.Exists(path + SYSTEMLOG_FILE_DIR) == false) + Directory.CreateDirectory(path + SYSTEMLOG_FILE_DIR); + + if (File.Exists(FileName) == false) + { + logFile = new FileStream(FileName, FileMode.CreateNew, FileAccess.ReadWrite); + logData = WriteTotalDataHeader(aTime); + logFile.Write(logData, 0, logData.Length); + logFile.Close(); + } + + logFile = null; + //logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite); + logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite); + + if (logFile != null) + { + logFile.Seek(0, SeekOrigin.End); + logData = WriteTotalData(aTime, sConfig, tData); + logFile.Write(logData, 0, logData.Length); + logFile.Close(); + } + } + + public static void SystemDataLog(int mID, CommConfig sConfig, DeviceSystemData sData, DateTime aTime, string AppPath, string LogFileName) + { + SYSTEMLOG_FILE_DIR = String.Format("{0}\\SHELF{1}\\{2}", "\\log\\systemlog", mID, String.Format("{0:yyyyMM}", aTime)); + + FileStream logFile = null; + string path = Path.GetDirectoryName(AppPath); + //string FileName = String.Format(path + SYSTEMLOG_FILE_DIR + "\\SHELF{0}_LOG_{1}.csv", RackID, String.Format("{0:yyMMdd}", aTime)); + string FileName = String.Format(path + SYSTEMLOG_FILE_DIR + "\\SHELF{0}_LOG_{1}.csv", mID, LogFileName); + byte[] logData; + + if (Directory.Exists(path + SYSTEMLOG_FILE_DIR) == false) + Directory.CreateDirectory(path + SYSTEMLOG_FILE_DIR); + + if (File.Exists(FileName) == false) + { + logFile = new FileStream(FileName, FileMode.CreateNew, FileAccess.ReadWrite); + logData = WriteDataHeader(aTime, sData); + logFile.Write(logData, 0, logData.Length); + logFile.Close(); + } + + logFile = null; + //logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite); + logFile = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite); + + if (logFile != null) + { + logFile.Seek(0, SeekOrigin.End); + logData = WriteData(aTime, sConfig, sData); + logFile.Write(logData, 0, logData.Length); + logFile.Close(); + } + } + + #region SYSTEM DATE LOGGING + + private static byte[] WriteTotalDataHeader(DateTime aDateTime) + { + string tt; + string sdata; + + tt = aDateTime.ToString("yyyy-MM-dd HH:mm:ss"); + sdata = String.Format( + "{0},{1},{2},{3},{4},{5},{6},{7},{8},{9}," + , "DATETIME" // 0 + , "INTERFACE" // 1 + , "MODEL" // 2 + , "COMM STATUS" // 3 + , "STATUS" // 4 + , "ALARM" // 5 + , "VOLTAGE" // 6 + , "CURRENT" // 7 + , "SOC" // 8 + , "MAX. TEMP" // 9 + ); + sdata += "\r\n"; + + Byte[] info = + new UTF8Encoding(true).GetBytes(sdata); + + return info; + } + + private static byte[] WriteDataHeader(DateTime aDateTime, DeviceSystemData aSystemData) + { + string tt; + string sdata; + + tt = aDateTime.ToString("yyyy-MM-dd HH:mm:ss"); + sdata = String.Format( + "{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12}," + , "DATETIME" // 0 + , "INTERFACE" // 1 + , "MODEL" // 2 + , "FW_VER" // 3 + , "MODULE_SN" // 4 + , "COMM STATUS" // 5 + , "STATUS" // 6 + , "ALARM" // 7 + , "VOLTAGE" // 8 + , "CURRENT" // 9 + , "SOC" // 10 + , "SOH" // 11 + , "CYCLES" // 12 + ); + sdata += "CV_DIFF,"; + for (int i = 0; i < aSystemData.cellQty; i++) + { + sdata += String.Format("{0},", String.Format("Cell_{0}", i + 1)); + } + + sdata += "TP_DIFF,"; + for (int i = 0; i < aSystemData.tempQty; i++) + { + sdata += String.Format("{0},", String.Format("Temp_{0}", i + 1)); + } + + sdata += String.Format("{0},", String.Format("EXT1_Temp")); + sdata += String.Format("{0},", String.Format("EXT2_Temp")); + + sdata += String.Format( + "{0},{1},{2}," + , "Warning" // 0 + , "Fault" // 1 + , "CB" // 2 + ); + sdata += "\r\n"; + + Byte[] info = + new UTF8Encoding(true).GetBytes(sdata); + + return info; + } + + private static string GetStatusString(short aStatus) + { + string result = ""; + + if (aStatus == 0) + { + result = "STANDBY"; + } + else if (aStatus == 1) + { + result = "CHARGING"; + } + else if (aStatus == 2) + { + result = "DISCHARGING"; + } + else if (aStatus == 3) + { + result = "FLOATING"; + } + else + { + result = "UNKNOWN"; + } + return result; + } + + private static string GetAlarmString(short aAlarm) + { + string result = ""; + bool[] rackStatus = csUtils.Int16ToBitArray(aAlarm); + + if (aAlarm == 0) result = "NORMAL"; + else if (aAlarm == 1) result = "WARNING"; + else if (aAlarm == 2) result = "FAULT"; + else if (aAlarm == 3) result = "WARMING UP"; + else result = "UNKNOWN"; + + return result; + } + + private static string GetInterface(int sCommType) + { + string result = ""; + + result = "UART"; + + return result; + } + + private static string GetModelName(CommConfig sConfig) + { + string result = ""; + + result = csConstData.MODEL_STR[sConfig.UartModelIndex]; + + return result; + } + + private static string GetCommStatus(CommConfig sConfig, DeviceSystemData sData) + { + string result = ""; + + switch (sConfig.CommType) + { + case csConstData.CommType.COMM_UART: + result = sData.CommFail == false ? "NORM" : "FAIL"; + break; + case csConstData.CommType.COMM_RS485: + result = sData.CommFail == false ? "NORM" : "FAIL"; + break; + case csConstData.CommType.COMM_SNMP: + if (sData.CommFail == false) + { + if (sData.ShelfCommFail == false) result = "NORM"; + else result = "FAIL"; + } + else + { + result = "OFF-LINE"; + } + break; + default: + break; + } + return result; + } + + private static string GetCommStatus(DeviceSystemTotalData tData) + { + string result = ""; + + if (tData.CommFail) + result = "OFF-LINE"; + else + result = "NORM"; + + return result; + } + + private static byte[] WriteTotalData(DateTime aLog, CommConfig sConfig, DeviceSystemTotalData tData) + { + string tt; + string sdata; + + tt = aLog.ToString("yyyy-MM-dd HH:mm:ss"); + sdata = String.Format( + "{0},{1},{2},{3},{4},{5},{6},{7},{8},{9}," + , tt // 0 DATETIME + , GetInterface(sConfig.CommType) // 1 INTERFACE + , GetModelName(sConfig) // 2 MODEL + , GetCommStatus(tData) // 3 COMM STATUS + , GetStatusString(tData.StatusData.status) // 4 STATUS + , GetAlarmString(tData.StatusData.batteryStatus) // 5 ALARM + , String.Format("{0:#0.0}", Convert.ToDouble(tData.ValueData.TotalVoltage) / 10) // 6 voltageOfPack + , String.Format("{0:#0.0}", Convert.ToDouble(tData.ValueData.TotalCurrent) / 10) // 7 current + , String.Format("{0:#0.0}", Convert.ToDouble(tData.ValueData.TotalSOC) / 10) // 8 SOC + , String.Format("{0:#0.0}", Convert.ToDouble(tData.ValueData.TotalTemp) / 10) // 9 Max Temperature + ); + sdata += "\r\n"; + + Byte[] info = + new UTF8Encoding(true).GetBytes(sdata); + + return info; + } + + private static byte[] WriteData(DateTime aLog, CommConfig sConfig, DeviceSystemData sData) + { + string tt; + string sdata; + + tt = string.Format("{0:yyyy-MM-dd HH:mm:ss}", aLog); + sdata = String.Format( + "{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12}," + , tt // 0 DATETIME + , GetInterface(sConfig.CommType) // 1 INTERFACE + , sData.Information.ModelName // 2 MODEL + , sData.Information.SwProductRev // 3 FW Ver + , sData.Information.HwSerialNumber // 4 SN + , GetCommStatus(sConfig, sData) // 5 COMM STATUS + , GetStatusString(sData.StatusData.status) // 6 STATUS + , GetAlarmString(sData.StatusData.batteryStatus) // 7 ALARM + , String.Format("{0:#0.0}", Convert.ToDouble(sData.ValueData.voltageOfPack) / 10) // 8 voltageOfPack + , String.Format("{0:#0.0}", Convert.ToDouble(sData.ValueData.current) / 10) // 9 current + , String.Format("{0:#0.0}", Convert.ToDouble(sData.ValueData.rSOC) / 10) // 10 SOC + , String.Format("{0:#0.0}", Convert.ToDouble(sData.ValueData.stateOfHealth) / 10) // 11 SOH + , String.Format("{0}", Convert.ToDouble(sData.ValueData.cycleCount) / 1) // 12 Cycle Count + ); + + sdata += String.Format("{0:#0.000},", Convert.ToDouble(sData.AvgData.diffCellVoltage) / 1000); // 13 Cell Voltage Diff + for (int i = 0; i < sData.cellQty; i++) + { + sdata += String.Format("{0:#0.000},", Convert.ToDouble(sData.ValueData.CellVoltage[i]) / 1000); // 14 - 28 Cell Voltage n + } + + sdata += String.Format("{0:#0.0},", Convert.ToDouble(sData.AvgData.diffTemp) / 10); // 29 Temperature Diff + for (int i = 0; i < sData.tempQty; i++) + { + sdata += String.Format("{0:#0.0},", Convert.ToDouble(sData.ValueData.CellTemperature[i]) / 10); // 30 - 33 Cell Temperature n + } + + sdata += String.Format("{0:#0.0},", Convert.ToDouble(sData.ValueData.Ext1Temperature) / 10); // 34 Ext1 Temperature n + sdata += String.Format("{0:#0.0},", Convert.ToDouble(sData.ValueData.Ext2Temperature) / 10); // 35 Ext2 Temperature n + + sdata += String.Format( + "{0},{1},{2}," + , String.Format("0x{0}", sData.StatusData.warning.ToString("X4")) // 0 Warning + , String.Format("0x{0}", sData.StatusData.protection.ToString("X4")) // 1 Protection + , String.Format("0x{0}", sData.StatusData.cellBallanceStatus.ToString("X4")) // 2 cellBallanceStatus + ); + sdata += "\r\n"; + + Byte[] info = + new UTF8Encoding(true).GetBytes(sdata); + + return info; + } + #endregion + + #region DATA PRINT + + public static string data_print(byte[] data, int len) + { + byte[] ASC; + int i, j; + string result = ""; + + ASC = new byte[20]; + + if (len > 2) + { + if (ASC != null) + { + for (i = 0; i < (len / 16 + 1); i++) + { + result += String.Format("0x{0:X8} ", (int)(i * 16)); + for (j = 0; j < 16; j++) + { + if ((i * 16 + j) >= data.Length) + { + result += " "; + ASC[j] = (byte)' '; + } + else + { + result += String.Format("{0:X2} ", data[(i * 16) + j]); + if (data[i * 16 + j] < ' ') + ASC[j] = (byte)'.'; + else + { + if ((j == 15) && (data[i * 16 + j] > 128)) + ASC[j] = (byte)'.'; + else + ASC[j] = data[i * 16 + j]; + } + } + } + ASC[16] = 0x00; + result += "\r\n"; + //result += String.Format(" {0}\r\n", ASC.ToArray().ToString()); + } + } + result += "\r\n"; + //result += String.Format("ID: {0:X2}\r\n", data[6]); + //result += String.Format("CMD: {0:X2}\r\n", data[7]); + //result += String.Format("S-A: {0:X4}({0:d})\r\n", (data[8] << 8) | data[9]); + //result += String.Format("S-L: {0:X4}({0:d})\r\n", (data[10] << 8) | data[11]); + } + + return result; + } + public static string trx_data_print(byte[] data, int len, int flag) + { + int i, j; + string result = ""; + + if (len > 2) + { + for (i = 0; i < (len / 16 + 1); i++) + { + if (flag == 0) + { result += string.Format("[{0:yyyy-MM-dd HH:mm:ss.fff}] TX({1:0000}): ", DateTime.Now, len); } + else + { result += string.Format("[{0:yyyy-MM-dd HH:mm:ss.fff}] RX({1:0000}): ", DateTime.Now, len); } + + for (j = 0; j < 16; j++) + { + if ((i * 16 + j) >= len) + { + result += " "; + } + else + { + result += string.Format("{0:X2} ", data[(i * 16) + j]); + } + } + result += "\r\n"; + } + } + return result; + } + public static string trx_msg_print(string msg, int flag) + { + string result = ""; + + if (flag == 0) + { + result += string.Format("[{0:yyyy-MM-dd HH:mm:ss.fff}] TX({1}) ", DateTime.Now, msg); + } + else + { + result += string.Format("[{0:yyyy-MM-dd HH:mm:ss.fff}] RX({1}) ", DateTime.Now, msg); + } + return result; + } + + #endregion + } +} diff --git a/LFP_Manager/Utils/csUtils.cs b/LFP_Manager/Utils/csUtils.cs new file mode 100644 index 0000000..00b836a --- /dev/null +++ b/LFP_Manager/Utils/csUtils.cs @@ -0,0 +1,442 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +using LFP_Manager.DataStructure; + +namespace LFP_Manager.Utils +{ + static class csUtils + { + public static readonly byte[] auchCRCHi = { + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, + 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, + 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, + 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, + 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, + 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, + 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, + 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, + 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, + 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, + 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, + 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, + 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40 + }; + + public static readonly byte[] auchCRCLo = { + 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, + 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, + 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, + 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, + 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, + 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, + 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, + 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, + 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, + 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, + 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, + 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, + 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91, + 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, + 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, + 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, + 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,0x40 + }; + + #region CRC Calculation + /// + /// Modbus CRC-16 계산 + /// + public static byte[] CalculateCRC(byte[] data, int length) + { + if (data == null || length <= 0 || length > data.Length) + throw new ArgumentException("Invalid data or length"); + + ushort crc = 0xFFFF; + + for (int i = 0; i < length; i++) + { + crc ^= data[i]; + for (int j = 0; j < 8; j++) + { + if ((crc & 1) == 1) + crc = (ushort)((crc >> 1) ^ 0xA001); + else + crc >>= 1; + } + } + + return new byte[] { (byte)(crc & 0xFF), (byte)(crc >> 8) }; + } + #endregion + + public static int GetModuleQty(CommConfig aConfig) + { + int mQty = 0; + + switch (aConfig.CommType) + { + case csConstData.CommType.COMM_UART: + mQty = 1; + break; + case csConstData.CommType.COMM_RS485: + mQty = aConfig.ModuleQty; + break; + case csConstData.CommType.COMM_SNMP: + mQty = 1; + break; + default: + mQty = 0; + break; + } + return mQty; + } + + public static void TypingOnlyNumber(object sender, KeyPressEventArgs e, bool includePoint, bool includeMinus) + { + bool isValidInput = false; + if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)) + { + if (includePoint == true) { if (e.KeyChar == '.') isValidInput = true; } + if (includeMinus == true) { if (e.KeyChar == '-') isValidInput = true; } + + if (isValidInput == false) e.Handled = true; + } + + if (includePoint == true) + { + if (e.KeyChar == '.' && (string.IsNullOrEmpty((sender as DevExpress.XtraEditors.TextEdit).Text.Trim()) || (sender as DevExpress.XtraEditors.TextEdit).Text.IndexOf('.') > -1)) e.Handled = true; + } + if (includeMinus == true) + { + if (e.KeyChar == '-' && (!string.IsNullOrEmpty((sender as DevExpress.XtraEditors.TextEdit).Text.Trim()) || (sender as DevExpress.XtraEditors.TextEdit).Text.IndexOf('-') > -1)) e.Handled = true; + } + } + + public static bool[] Int16ToBitArray(Int16 data) + { + bool[] result = new bool[16]; + + for (int i = 0; i < 16; i++) + { + result[i] = (((data >> i) & 0x0001) == 0x0001) ? true : false; + } + + return result; + } + + public static byte[] GetCRC(byte[] pby, UInt16 nSize) + { + byte[] result = new byte[2]; + UInt16 uIndex, i; + UInt16 crc; + byte uchCRCHi = 0xff; + byte uchCRCLo = 0xff; + + for (i = 0; i < nSize; i++) + { + uIndex = (UInt16)(uchCRCHi ^ pby[i]); + uchCRCHi = (byte)(uchCRCLo ^ csConstData.CRC_Data.auchCRCHi[uIndex]); + uchCRCLo = csConstData.CRC_Data.auchCRCLo[uIndex]; + } + crc = (UInt16)(((UInt16)uchCRCHi << 8) | uchCRCLo); + + result[1] = (byte)(crc / 256); + result[0] = (byte)(crc % 256); + + return result; + } + + public static byte StrByte2toByte(byte a, byte b) + { + byte result = 0; + byte a1 = 0, b1 = 0; + + if ((a >= (byte)'0')&&(a <= (byte)'9')) + { + a1 = (byte)(a - (byte)'0'); + } + else if ((a >= (byte)'a')&&(a <= (byte)'f')) + { + a1 = (byte)(a - (byte)'a'); + } + else if ((a >= (byte)'A')&&(a <= (byte)'F')) + { + a1 = (byte)((a - (byte)'A') + 0x0A); + } + + if ((b >= (byte)'0') && (b <= (byte)'9')) + { + b1 = (byte)(b - (byte)'0'); + } + else if ((b >= (byte)'a') && (b <= (byte)'f')) + { + b1 = (byte)(b - (byte)'a'); + } + else if ((b >= (byte)'A') && (b <= (byte)'F')) + { + b1 = (byte)((b - (byte)'A') + 0x0A); + } + + result = (byte)((b1 << 4) | a1); + + return result; + } + + public static byte[] StrToByteArray(byte[] rData, int offset, int rlen) + { + int len = (rlen - 2) / 2; + byte[] result = new byte[len]; + + for (int i = 0; i < len; i++) + { + result[i] = StrByte2toByte(rData[(i * 2) + offset + 2], rData[(i * 2) + offset + 1]); + } + + return result; + } + + public static byte[] StringToByte(string str) + { + byte[] StrByte = Encoding.UTF8.GetBytes(str); return StrByte; + } + + #region OPERATING WARNING FUCTION + + public static bool BitCheck(short rData, int pos) + { + if (((rData >> pos) & 0x0001) == 0x0001) + return true; + else + return false; + } + + #endregion + + #region TIMESTAMP FUNCTION + public static UInt32 CalcKKTimeStamp(DateTime tDate) + { + //Time of test and calibration. Local time in seconds since 2000. + //Ex: + //Epoch time offset (1 January 2000 00:00:00) = 946684800 + //Current epoch time (1 October 2019 12:00:00) = 1569931200 + //Timestamp = 1569931200 - 946684800 = 623246400 + //(Used 'https://www.epochconverter.com/' for conversion) + DateTime baseDate = new DateTime(2000, 1, 1, 0, 0, 0); + + int bDate = ConvertToUnixTimestamp(baseDate); + int nDate = ConvertToUnixTimestamp(tDate); + + return (UInt32)(nDate - bDate); + } + + public static DateTime ConvertTimeStampToDateTime(UInt32 tStamp) + { + DateTime result = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc); + + result = result.AddSeconds(tStamp); + + // DateTimeOffset.Now.ToUnixTimeSeconds() // (.NET Framework 4.6 +/.NET Core), + // older versions: + //var epoch = (DateTime.UtcNow - new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds; + + return result; + } + + public static int ConvertToUnixTimestamp(DateTime date) + { + DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0); + TimeSpan diff = date - origin; + return (int)Math.Floor(diff.TotalSeconds); + } + #endregion + + #region DateTime Format Methods + /// + /// DateTime을 기본 형식으로 변환합니다. (yyyy-MM-dd HH:mm:ss) + /// + public static string FormatDateTime(DateTime dateTime) + { + return dateTime.ToString("yyyy-MM-dd HH:mm:ss"); + } + #endregion + + #region DATA INIT + + public static void DataInit(CommConfig aConfig, ref DeviceSystemData aSystemData) + { + aSystemData.ShelfCommFail = true; + + switch (aConfig.CommType) + { + case csConstData.CommType.COMM_UART: + case csConstData.CommType.COMM_RS485: + switch (aConfig.UartModelIndex) + { + case csConstData.MODEL_INDEX.LFPM_48100D: + case csConstData.MODEL_INDEX.LFPM_48150D: + case csConstData.MODEL_INDEX.LFPM_48200D: + case csConstData.MODEL_INDEX.LFPM_48250D: + case csConstData.MODEL_INDEX.LFPM_48300D: + aSystemData.cellQty = 15; + aSystemData.tempQty = 4; + break; + case csConstData.MODEL_INDEX.LFPM_124050D: + aSystemData.cellQty = csConstData.SystemInfo.MAX_MODULE_CELL_SIZE; + aSystemData.tempQty = csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE; + break; + default: + aSystemData.cellQty = 15; + aSystemData.tempQty = 4; + break; + } + break; + case csConstData.CommType.COMM_SNMP: + switch (aConfig.SnmpModelIndex) + { + case csConstData.MODEL_INDEX.LFPM_48100D: + case csConstData.MODEL_INDEX.LFPM_48150D: + case csConstData.MODEL_INDEX.LFPM_48200D: + case csConstData.MODEL_INDEX.LFPM_48250D: + case csConstData.MODEL_INDEX.LFPM_48300D: + aSystemData.cellQty = 15; + aSystemData.tempQty = 4; + break; + case csConstData.MODEL_INDEX.LFPM_124050D: + aSystemData.cellQty = csConstData.SystemInfo.MAX_MODULE_CELL_SIZE; + aSystemData.tempQty = csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE; + break; + default: + aSystemData.cellQty = 15; + aSystemData.tempQty = 4; + break; + } + break; + default: + aSystemData.cellQty = 15; + aSystemData.tempQty = 4; + break; + } + + for (int j = 0; j < aSystemData.ValueData.CellVoltage.Length; j++) + { + aSystemData.ValueData.CellVoltage[j] = 0; + } + for (int j = 0; j < aSystemData.ValueData.CellTemperature.Length; j++) + { + aSystemData.ValueData.CellTemperature[j] = 0; + } + aSystemData.ValueData.voltageOfPack = 0; + aSystemData.ValueData.current = 0; + aSystemData.ValueData.rSOC = 0; + aSystemData.AvgData.maxCellVoltage = 0; + aSystemData.AvgData.minCellVoltage = 0; + aSystemData.AvgData.avgCellVoltage = 0; + aSystemData.AvgData.maxTemp = 0; + aSystemData.AvgData.minTemp = 0; + aSystemData.AvgData.avgTemp = 0; + aSystemData.heatbeat = 0; + aSystemData.StatusData.warning = 0; + aSystemData.StatusData.protection = 0; + + for (int j = 0; j < aSystemData.Information.BMS_SN.Length; j++) + { + aSystemData.Information.BMS_SN[j] = 0; + } + for (int j = 0; j < aSystemData.Information.Module_SN.Length; j++) + { + aSystemData.Information.Module_SN[j] = 0; + } + + aSystemData.CalibrationData.Battery.Capacity = 0; + aSystemData.CalibrationData.Current.ChaAndDchSelect = 0; + aSystemData.CalibrationData.Current.ChgCalibration_K = 0; + aSystemData.CalibrationData.Current.DchCalibration_K = 0; + } + + #endregion + + #region MAKE AVERAGE VALUE + public static void MakeMaxAvgMinCellVoltage(ref DeviceSystemData rSystemData, int cellQty) + { + int Max, Avg, Min, Sum; + int MaxNo, MinNo; + + Max = Avg = Min = Sum = 0; + MaxNo = MinNo = 0; + for (int i = 0; i < cellQty; i++) + { + if (i == 0) + { + Max = Min = rSystemData.ValueData.CellVoltage[i]; + } + Sum += rSystemData.ValueData.CellVoltage[i]; + + if (Max < rSystemData.ValueData.CellVoltage[i]) + { + Max = rSystemData.ValueData.CellVoltage[i]; + MaxNo = i; + } + if (Min > rSystemData.ValueData.CellVoltage[i]) + { + Min = rSystemData.ValueData.CellVoltage[i]; + MinNo = i; + } + } + Avg = Sum / cellQty; + + rSystemData.AvgData.avgCellVoltage = (short)Avg; + rSystemData.AvgData.maxCellVoltage = (short)Max; + rSystemData.AvgData.maxCellNum = (short)(MaxNo + 1); + rSystemData.AvgData.minCellVoltage = (short)Min; + rSystemData.AvgData.minCellNum = (short)(MinNo + 1); + rSystemData.AvgData.diffCellVoltage = (short)(Max - Min); + } + + public static void MakeMaxAvgMinTemperature(ref DeviceSystemData rSystemData, int tempQty) + { + int Max, Avg, Min, Sum; + int MaxNo, MinNo; + + Max = Avg = Min = Sum = 0; + MaxNo = MinNo = 0; + + for (int i = 0; i < tempQty; i++) + { + if (i == 0) + { + Max = Min = rSystemData.ValueData.CellTemperature[i]; + } + Sum += rSystemData.ValueData.CellTemperature[i]; + + if (Max < rSystemData.ValueData.CellTemperature[i]) + { + Max = rSystemData.ValueData.CellTemperature[i]; + MaxNo = i; + } + if (Min > rSystemData.ValueData.CellTemperature[i]) + { + Min = rSystemData.ValueData.CellTemperature[i]; + MinNo = i; + } + } + Avg = Sum / tempQty; + + rSystemData.AvgData.avgTemp = (short)Avg; + rSystemData.AvgData.maxTemp = (short)Max; + rSystemData.AvgData.maxTempNum = (short)(MaxNo + 1); + rSystemData.AvgData.minTemp = (short)Min; + rSystemData.AvgData.minTempNum = (short)(MinNo + 1); + rSystemData.AvgData.diffTemp = (short)(Max - Min); + } + + #endregion + } +} diff --git a/LFP_Manager/app.config b/LFP_Manager/app.config new file mode 100644 index 0000000..5edc23b --- /dev/null +++ b/LFP_Manager/app.config @@ -0,0 +1,47 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LFP_Manager/dll/ControlCAN.dll b/LFP_Manager/dll/ControlCAN.dll new file mode 100644 index 0000000..5df15bc Binary files /dev/null and b/LFP_Manager/dll/ControlCAN.dll differ diff --git a/LFP_Manager/dll/IPAddressControlLib.dll b/LFP_Manager/dll/IPAddressControlLib.dll new file mode 100644 index 0000000..642eb20 Binary files /dev/null and b/LFP_Manager/dll/IPAddressControlLib.dll differ diff --git a/LFP_Manager/dll/SnmpSharpNet.dll b/LFP_Manager/dll/SnmpSharpNet.dll new file mode 100644 index 0000000..a6104ee Binary files /dev/null and b/LFP_Manager/dll/SnmpSharpNet.dll differ diff --git a/LFP_Manager/dll/Tftp.Net.dll b/LFP_Manager/dll/Tftp.Net.dll new file mode 100644 index 0000000..c1bcfed Binary files /dev/null and b/LFP_Manager/dll/Tftp.Net.dll differ diff --git a/LFP_Manager/dll/kerneldlls/CAN232.dll b/LFP_Manager/dll/kerneldlls/CAN232.dll new file mode 100644 index 0000000..f0f4fb6 Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/CAN232.dll differ diff --git a/LFP_Manager/dll/kerneldlls/CANETE.dll b/LFP_Manager/dll/kerneldlls/CANETE.dll new file mode 100644 index 0000000..2c1b041 Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/CANETE.dll differ diff --git a/LFP_Manager/dll/kerneldlls/CANET_TCP.dll b/LFP_Manager/dll/kerneldlls/CANET_TCP.dll new file mode 100644 index 0000000..060ac4a Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/CANET_TCP.dll differ diff --git a/LFP_Manager/dll/kerneldlls/CANWIFI_TCP.dll b/LFP_Manager/dll/kerneldlls/CANWIFI_TCP.dll new file mode 100644 index 0000000..a1f566b Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/CANWIFI_TCP.dll differ diff --git a/LFP_Manager/dll/kerneldlls/CANWIFI_UDP.dll b/LFP_Manager/dll/kerneldlls/CANWIFI_UDP.dll new file mode 100644 index 0000000..e715e5f Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/CANWIFI_UDP.dll differ diff --git a/LFP_Manager/dll/kerneldlls/PC104C2.dll b/LFP_Manager/dll/kerneldlls/PC104C2.dll new file mode 100644 index 0000000..ca44ce8 Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/PC104C2.dll differ diff --git a/LFP_Manager/dll/kerneldlls/PC104CAN.dll b/LFP_Manager/dll/kerneldlls/PC104CAN.dll new file mode 100644 index 0000000..e0ed7c5 Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/PC104CAN.dll differ diff --git a/LFP_Manager/dll/kerneldlls/PCI5121.dll b/LFP_Manager/dll/kerneldlls/PCI5121.dll new file mode 100644 index 0000000..231017c Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/PCI5121.dll differ diff --git a/LFP_Manager/dll/kerneldlls/PCI9820B.DLL b/LFP_Manager/dll/kerneldlls/PCI9820B.DLL new file mode 100644 index 0000000..784296e Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/PCI9820B.DLL differ diff --git a/LFP_Manager/dll/kerneldlls/gisadll.dll b/LFP_Manager/dll/kerneldlls/gisadll.dll new file mode 100644 index 0000000..e657290 Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/gisadll.dll differ diff --git a/LFP_Manager/dll/kerneldlls/gpcidll.dll b/LFP_Manager/dll/kerneldlls/gpcidll.dll new file mode 100644 index 0000000..1d3ae86 Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/gpcidll.dll differ diff --git a/LFP_Manager/dll/kerneldlls/isa5420.dll b/LFP_Manager/dll/kerneldlls/isa5420.dll new file mode 100644 index 0000000..bace86a Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/isa5420.dll differ diff --git a/LFP_Manager/dll/kerneldlls/kerneldll.ini b/LFP_Manager/dll/kerneldlls/kerneldll.ini new file mode 100644 index 0000000..3899f0e --- /dev/null +++ b/LFP_Manager/dll/kerneldlls/kerneldll.ini @@ -0,0 +1,31 @@ +[KERNELDLL] +COUNT=29 +1=PCI51XXE.dll +2=PCI9810B.dll +3=USBCAN.dll +4=USBCAN.dll +5=PCI9820B.dll +6=CAN232.dll +7=PCI51XXE.dll +8=CANLite.dll +9=ISA9620B.dll +10=ISA5420.dll +11=PC104CAN.dll +12=CANETE.dll +13=DNP9810B.dll +14=PCI9840B.dll +15=PC104C2.dll +16=PCI9820I.dll +17=CANET_TCP.dll +18=pec9920.dll +19=pci50xx_u.dll +20=USBCAN_E.dll +21=USBCAN_E.dll +22=pci50xx_u.dll +23=topcliff_can.dll +24=pcie9221.dll +25=CANWIFI_TCP.dll +26=CANWIFI_UDP.dll +27=pcie9120.dll +28=pcie9110.dll +29=pcie9140.dll diff --git a/LFP_Manager/dll/kerneldlls/usbcan.dll b/LFP_Manager/dll/kerneldlls/usbcan.dll new file mode 100644 index 0000000..838e490 Binary files /dev/null and b/LFP_Manager/dll/kerneldlls/usbcan.dll differ diff --git a/LFP_Manager/dll/log4net.dll b/LFP_Manager/dll/log4net.dll new file mode 100644 index 0000000..ffc57e1 Binary files /dev/null and b/LFP_Manager/dll/log4net.dll differ diff --git a/LFP_Manager/fmMain.Designer.cs b/LFP_Manager/fmMain.Designer.cs new file mode 100644 index 0000000..3be09af --- /dev/null +++ b/LFP_Manager/fmMain.Designer.cs @@ -0,0 +1,971 @@ +namespace LFP_Manager +{ + partial class fmMain + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fmMain)); + this.tmrDisplay = new System.Windows.Forms.Timer(this.components); + this.lcMain = new DevExpress.XtraLayout.LayoutControl(); + this.gbDataLog = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl6 = new DevExpress.XtraLayout.LayoutControl(); + this.btnOpenLogFolder = new DevExpress.XtraEditors.SimpleButton(); + this.btnLogStart = new DevExpress.XtraEditors.SimpleButton(); + this.cbLogTime = new DevExpress.XtraEditors.ComboBoxEdit(); + this.layoutControlGroup6 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.lcitemLogTime = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem13 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem12 = new DevExpress.XtraLayout.LayoutControlItem(); + this.tabSystemStatus = new DevExpress.XtraTab.XtraTabControl(); + this.pgSystem1 = new DevExpress.XtraTab.XtraTabPage(); + this.layoutControl4 = new DevExpress.XtraLayout.LayoutControl(); + this.ucShelfA = new LFP_Manager.Controls.ucShelfStatus(); + this.layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem(); + this.pgSystem2 = new DevExpress.XtraTab.XtraTabPage(); + this.layoutControl3 = new DevExpress.XtraLayout.LayoutControl(); + this.ucShelfB = new LFP_Manager.Controls.ucShelfStatus(); + this.layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem9 = new DevExpress.XtraLayout.LayoutControlItem(); + this.pgSystem3 = new DevExpress.XtraTab.XtraTabPage(); + this.layoutControl5 = new DevExpress.XtraLayout.LayoutControl(); + this.ucShelfC = new LFP_Manager.Controls.ucShelfStatus(); + this.layoutControlGroup5 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem10 = new DevExpress.XtraLayout.LayoutControlItem(); + this.gcLogging = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl2 = new DevExpress.XtraLayout.LayoutControl(); + this.btnLogClear = new DevExpress.XtraEditors.SimpleButton(); + this.tabDataLog = new DevExpress.XtraTab.XtraTabControl(); + this.tpDataLog = new DevExpress.XtraTab.XtraTabPage(); + this.panelControl1 = new DevExpress.XtraEditors.PanelControl(); + this.meDataLog = new DevExpress.XtraEditors.MemoEdit(); + this.layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem14 = new DevExpress.XtraLayout.LayoutControlItem(); + this.gcTargetConfig = new DevExpress.XtraEditors.GroupControl(); + this.layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + this.cbType = new DevExpress.XtraEditors.ComboBoxEdit(); + this.btnStart = new DevExpress.XtraEditors.SimpleButton(); + this.teTargetIP = new IPAddressControlLib.IPAddressControl(); + this.lbTargetIP = new DevExpress.XtraEditors.LabelControl(); + this.layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); + this.emptySpaceItem2 = new DevExpress.XtraLayout.EmptySpaceItem(); + this.layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcitemType = new DevExpress.XtraLayout.LayoutControlItem(); + this.lcgMain = new DevExpress.XtraLayout.LayoutControlGroup(); + this.layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem(); + this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem(); + this.tmrLogging = new System.Windows.Forms.Timer(this.components); + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.serialPort1 = new System.IO.Ports.SerialPort(this.components); + ((System.ComponentModel.ISupportInitialize)(this.lcMain)).BeginInit(); + this.lcMain.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.gbDataLog)).BeginInit(); + this.gbDataLog.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl6)).BeginInit(); + this.layoutControl6.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.cbLogTime.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemLogTime)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.tabSystemStatus)).BeginInit(); + this.tabSystemStatus.SuspendLayout(); + this.pgSystem1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).BeginInit(); + this.layoutControl4.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).BeginInit(); + this.pgSystem2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).BeginInit(); + this.layoutControl3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).BeginInit(); + this.pgSystem3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl5)).BeginInit(); + this.layoutControl5.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gcLogging)).BeginInit(); + this.gcLogging.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).BeginInit(); + this.layoutControl2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.tabDataLog)).BeginInit(); + this.tabDataLog.SuspendLayout(); + this.tpDataLog.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.panelControl1)).BeginInit(); + this.panelControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.meDataLog.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gcTargetConfig)).BeginInit(); + this.gcTargetConfig.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit(); + this.layoutControl1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.cbType.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemType)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcgMain)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).BeginInit(); + this.menuStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // tmrDisplay + // + this.tmrDisplay.Interval = 50; + this.tmrDisplay.Tick += new System.EventHandler(this.tmrDisplay_Tick); + // + // lcMain + // + this.lcMain.Controls.Add(this.gbDataLog); + this.lcMain.Controls.Add(this.tabSystemStatus); + this.lcMain.Controls.Add(this.gcLogging); + this.lcMain.Controls.Add(this.gcTargetConfig); + this.lcMain.Dock = System.Windows.Forms.DockStyle.Fill; + this.lcMain.Location = new System.Drawing.Point(0, 0); + this.lcMain.Name = "lcMain"; + this.lcMain.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(901, 311, 250, 350); + this.lcMain.Root = this.lcgMain; + this.lcMain.Size = new System.Drawing.Size(913, 729); + this.lcMain.TabIndex = 0; + this.lcMain.Text = "layoutControl1"; + // + // gbDataLog + // + this.gbDataLog.Controls.Add(this.layoutControl6); + this.gbDataLog.Location = new System.Drawing.Point(711, 580); + this.gbDataLog.Name = "gbDataLog"; + this.gbDataLog.Size = new System.Drawing.Size(199, 146); + this.gbDataLog.TabIndex = 8; + this.gbDataLog.Text = "Data Logging"; + // + // layoutControl6 + // + this.layoutControl6.Controls.Add(this.btnOpenLogFolder); + this.layoutControl6.Controls.Add(this.btnLogStart); + this.layoutControl6.Controls.Add(this.cbLogTime); + this.layoutControl6.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl6.Location = new System.Drawing.Point(2, 22); + this.layoutControl6.Name = "layoutControl6"; + this.layoutControl6.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1209, 389, 250, 350); + this.layoutControl6.Root = this.layoutControlGroup6; + this.layoutControl6.Size = new System.Drawing.Size(195, 122); + this.layoutControl6.TabIndex = 0; + this.layoutControl6.Text = "layoutControl6"; + // + // btnOpenLogFolder + // + this.btnOpenLogFolder.Location = new System.Drawing.Point(3, 77); + this.btnOpenLogFolder.Name = "btnOpenLogFolder"; + this.btnOpenLogFolder.Size = new System.Drawing.Size(189, 42); + this.btnOpenLogFolder.StyleController = this.layoutControl6; + this.btnOpenLogFolder.TabIndex = 6; + this.btnOpenLogFolder.Text = "Open Log Folder"; + this.btnOpenLogFolder.Click += new System.EventHandler(this.btnOpenLogFolder_Click); + // + // btnLogStart + // + this.btnLogStart.Location = new System.Drawing.Point(3, 27); + this.btnLogStart.Name = "btnLogStart"; + this.btnLogStart.Size = new System.Drawing.Size(189, 46); + this.btnLogStart.StyleController = this.layoutControl6; + this.btnLogStart.TabIndex = 5; + this.btnLogStart.Text = "Log Start"; + this.btnLogStart.Click += new System.EventHandler(this.btnLogStart_Click); + // + // cbLogTime + // + this.cbLogTime.EditValue = "5"; + this.cbLogTime.Location = new System.Drawing.Point(68, 3); + this.cbLogTime.Name = "cbLogTime"; + this.cbLogTime.Properties.Appearance.Options.UseTextOptions = true; + this.cbLogTime.Properties.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; + this.cbLogTime.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.cbLogTime.Properties.Items.AddRange(new object[] { + "1", + "5", + "10", + "15", + "30", + "60"}); + this.cbLogTime.Size = new System.Drawing.Size(124, 20); + this.cbLogTime.StyleController = this.layoutControl6; + this.cbLogTime.TabIndex = 4; + // + // layoutControlGroup6 + // + this.layoutControlGroup6.CustomizationFormText = "layoutControlGroup6"; + this.layoutControlGroup6.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup6.GroupBordersVisible = false; + this.layoutControlGroup6.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.lcitemLogTime, + this.layoutControlItem13, + this.layoutControlItem12}); + this.layoutControlGroup6.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup6.Name = "layoutControlGroup6"; + this.layoutControlGroup6.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup6.Size = new System.Drawing.Size(195, 122); + this.layoutControlGroup6.Text = "layoutControlGroup6"; + this.layoutControlGroup6.TextVisible = false; + // + // lcitemLogTime + // + this.lcitemLogTime.AppearanceItemCaption.Options.UseTextOptions = true; + this.lcitemLogTime.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lcitemLogTime.Control = this.cbLogTime; + this.lcitemLogTime.CustomizationFormText = "Log Time"; + this.lcitemLogTime.Location = new System.Drawing.Point(0, 0); + this.lcitemLogTime.MinSize = new System.Drawing.Size(119, 24); + this.lcitemLogTime.Name = "lcitemLogTime"; + this.lcitemLogTime.Size = new System.Drawing.Size(193, 24); + this.lcitemLogTime.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemLogTime.Text = "Log Time"; + this.lcitemLogTime.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.lcitemLogTime.TextSize = new System.Drawing.Size(60, 20); + this.lcitemLogTime.TextToControlDistance = 5; + // + // layoutControlItem13 + // + this.layoutControlItem13.Control = this.btnLogStart; + this.layoutControlItem13.CustomizationFormText = "layoutControlItem13"; + this.layoutControlItem13.Location = new System.Drawing.Point(0, 24); + this.layoutControlItem13.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem13.Name = "layoutControlItem13"; + this.layoutControlItem13.Size = new System.Drawing.Size(193, 50); + this.layoutControlItem13.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem13.Text = "layoutControlItem13"; + this.layoutControlItem13.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem13.TextToControlDistance = 0; + this.layoutControlItem13.TextVisible = false; + // + // layoutControlItem12 + // + this.layoutControlItem12.Control = this.btnOpenLogFolder; + this.layoutControlItem12.CustomizationFormText = "layoutControlItem12"; + this.layoutControlItem12.Location = new System.Drawing.Point(0, 74); + this.layoutControlItem12.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem12.Name = "layoutControlItem12"; + this.layoutControlItem12.Size = new System.Drawing.Size(193, 46); + this.layoutControlItem12.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem12.Text = "layoutControlItem12"; + this.layoutControlItem12.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem12.TextToControlDistance = 0; + this.layoutControlItem12.TextVisible = false; + // + // tabSystemStatus + // + this.tabSystemStatus.Location = new System.Drawing.Point(3, 65); + this.tabSystemStatus.Name = "tabSystemStatus"; + this.tabSystemStatus.SelectedTabPage = this.pgSystem1; + this.tabSystemStatus.Size = new System.Drawing.Size(907, 511); + this.tabSystemStatus.TabIndex = 7; + this.tabSystemStatus.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] { + this.pgSystem1, + this.pgSystem2, + this.pgSystem3}); + // + // pgSystem1 + // + this.pgSystem1.Controls.Add(this.layoutControl4); + this.pgSystem1.Name = "pgSystem1"; + this.pgSystem1.Size = new System.Drawing.Size(901, 482); + this.pgSystem1.Text = "SYSTEM #A"; + // + // layoutControl4 + // + this.layoutControl4.Controls.Add(this.ucShelfA); + this.layoutControl4.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl4.Location = new System.Drawing.Point(0, 0); + this.layoutControl4.Name = "layoutControl4"; + this.layoutControl4.Root = this.layoutControlGroup4; + this.layoutControl4.Size = new System.Drawing.Size(901, 482); + this.layoutControl4.TabIndex = 0; + this.layoutControl4.Text = "layoutControl4"; + // + // ucShelfA + // + this.ucShelfA.Location = new System.Drawing.Point(3, 3); + this.ucShelfA.Name = "ucShelfA"; + this.ucShelfA.Size = new System.Drawing.Size(895, 476); + this.ucShelfA.TabIndex = 4; + // + // layoutControlGroup4 + // + this.layoutControlGroup4.CustomizationFormText = "layoutControlGroup4"; + this.layoutControlGroup4.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup4.GroupBordersVisible = false; + this.layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem7}); + this.layoutControlGroup4.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup4.Name = "layoutControlGroup4"; + this.layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup4.Size = new System.Drawing.Size(901, 482); + this.layoutControlGroup4.Text = "layoutControlGroup4"; + this.layoutControlGroup4.TextVisible = false; + // + // layoutControlItem7 + // + this.layoutControlItem7.Control = this.ucShelfA; + this.layoutControlItem7.CustomizationFormText = "layoutControlItem7"; + this.layoutControlItem7.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem7.Name = "layoutControlItem7"; + this.layoutControlItem7.Size = new System.Drawing.Size(899, 480); + this.layoutControlItem7.Text = "layoutControlItem7"; + this.layoutControlItem7.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem7.TextToControlDistance = 0; + this.layoutControlItem7.TextVisible = false; + // + // pgSystem2 + // + this.pgSystem2.Controls.Add(this.layoutControl3); + this.pgSystem2.Name = "pgSystem2"; + this.pgSystem2.Size = new System.Drawing.Size(901, 482); + this.pgSystem2.Text = "SYSTEM #B"; + // + // layoutControl3 + // + this.layoutControl3.Controls.Add(this.ucShelfB); + this.layoutControl3.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl3.Location = new System.Drawing.Point(0, 0); + this.layoutControl3.Name = "layoutControl3"; + this.layoutControl3.Root = this.layoutControlGroup3; + this.layoutControl3.Size = new System.Drawing.Size(901, 482); + this.layoutControl3.TabIndex = 0; + this.layoutControl3.Text = "layoutControl3"; + // + // ucShelfB + // + this.ucShelfB.Location = new System.Drawing.Point(3, 3); + this.ucShelfB.Name = "ucShelfB"; + this.ucShelfB.Size = new System.Drawing.Size(895, 476); + this.ucShelfB.TabIndex = 4; + // + // layoutControlGroup3 + // + this.layoutControlGroup3.CustomizationFormText = "layoutControlGroup3"; + this.layoutControlGroup3.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup3.GroupBordersVisible = false; + this.layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem9}); + this.layoutControlGroup3.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup3.Name = "layoutControlGroup3"; + this.layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup3.Size = new System.Drawing.Size(901, 482); + this.layoutControlGroup3.Text = "layoutControlGroup3"; + this.layoutControlGroup3.TextVisible = false; + // + // layoutControlItem9 + // + this.layoutControlItem9.Control = this.ucShelfB; + this.layoutControlItem9.CustomizationFormText = "layoutControlItem9"; + this.layoutControlItem9.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem9.Name = "layoutControlItem9"; + this.layoutControlItem9.Size = new System.Drawing.Size(899, 480); + this.layoutControlItem9.Text = "layoutControlItem9"; + this.layoutControlItem9.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem9.TextToControlDistance = 0; + this.layoutControlItem9.TextVisible = false; + // + // pgSystem3 + // + this.pgSystem3.Controls.Add(this.layoutControl5); + this.pgSystem3.Name = "pgSystem3"; + this.pgSystem3.Size = new System.Drawing.Size(901, 482); + this.pgSystem3.Text = "SYSTEM #C"; + // + // layoutControl5 + // + this.layoutControl5.Controls.Add(this.ucShelfC); + this.layoutControl5.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl5.Location = new System.Drawing.Point(0, 0); + this.layoutControl5.Name = "layoutControl5"; + this.layoutControl5.Root = this.layoutControlGroup5; + this.layoutControl5.Size = new System.Drawing.Size(901, 482); + this.layoutControl5.TabIndex = 0; + this.layoutControl5.Text = "layoutControl5"; + // + // ucShelfC + // + this.ucShelfC.Location = new System.Drawing.Point(3, 3); + this.ucShelfC.Name = "ucShelfC"; + this.ucShelfC.Size = new System.Drawing.Size(895, 476); + this.ucShelfC.TabIndex = 4; + // + // layoutControlGroup5 + // + this.layoutControlGroup5.CustomizationFormText = "layoutControlGroup5"; + this.layoutControlGroup5.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup5.GroupBordersVisible = false; + this.layoutControlGroup5.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem10}); + this.layoutControlGroup5.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup5.Name = "layoutControlGroup5"; + this.layoutControlGroup5.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.layoutControlGroup5.Size = new System.Drawing.Size(901, 482); + this.layoutControlGroup5.Text = "layoutControlGroup5"; + this.layoutControlGroup5.TextVisible = false; + // + // layoutControlItem10 + // + this.layoutControlItem10.Control = this.ucShelfC; + this.layoutControlItem10.CustomizationFormText = "layoutControlItem10"; + this.layoutControlItem10.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem10.Name = "layoutControlItem10"; + this.layoutControlItem10.Size = new System.Drawing.Size(899, 480); + this.layoutControlItem10.Text = "layoutControlItem10"; + this.layoutControlItem10.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem10.TextToControlDistance = 0; + this.layoutControlItem10.TextVisible = false; + // + // gcLogging + // + this.gcLogging.Controls.Add(this.layoutControl2); + this.gcLogging.Location = new System.Drawing.Point(3, 580); + this.gcLogging.Name = "gcLogging"; + this.gcLogging.Size = new System.Drawing.Size(704, 146); + this.gcLogging.TabIndex = 5; + this.gcLogging.Text = "Event"; + // + // layoutControl2 + // + this.layoutControl2.Controls.Add(this.btnLogClear); + this.layoutControl2.Controls.Add(this.tabDataLog); + this.layoutControl2.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl2.Location = new System.Drawing.Point(2, 22); + this.layoutControl2.Name = "layoutControl2"; + this.layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(1234, 235, 250, 350); + this.layoutControl2.Root = this.layoutControlGroup2; + this.layoutControl2.Size = new System.Drawing.Size(700, 122); + this.layoutControl2.TabIndex = 0; + this.layoutControl2.Text = "layoutControl2"; + // + // btnLogClear + // + this.btnLogClear.Location = new System.Drawing.Point(640, 4); + this.btnLogClear.Name = "btnLogClear"; + this.btnLogClear.Size = new System.Drawing.Size(56, 114); + this.btnLogClear.StyleController = this.layoutControl2; + this.btnLogClear.TabIndex = 5; + this.btnLogClear.Text = "Clear"; + this.btnLogClear.Click += new System.EventHandler(this.btnLogClear_Click); + // + // tabDataLog + // + this.tabDataLog.Location = new System.Drawing.Point(4, 4); + this.tabDataLog.Name = "tabDataLog"; + this.tabDataLog.SelectedTabPage = this.tpDataLog; + this.tabDataLog.Size = new System.Drawing.Size(632, 114); + this.tabDataLog.TabIndex = 4; + this.tabDataLog.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] { + this.tpDataLog}); + // + // tpDataLog + // + this.tpDataLog.Controls.Add(this.panelControl1); + this.tpDataLog.Name = "tpDataLog"; + this.tpDataLog.Size = new System.Drawing.Size(626, 85); + this.tpDataLog.Text = "Data Log"; + // + // panelControl1 + // + this.panelControl1.Controls.Add(this.meDataLog); + this.panelControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panelControl1.Location = new System.Drawing.Point(0, 0); + this.panelControl1.Name = "panelControl1"; + this.panelControl1.Size = new System.Drawing.Size(626, 85); + this.panelControl1.TabIndex = 0; + // + // meDataLog + // + this.meDataLog.Dock = System.Windows.Forms.DockStyle.Fill; + this.meDataLog.Location = new System.Drawing.Point(2, 2); + this.meDataLog.Name = "meDataLog"; + this.meDataLog.Size = new System.Drawing.Size(622, 81); + this.meDataLog.TabIndex = 0; + // + // layoutControlGroup2 + // + this.layoutControlGroup2.CustomizationFormText = "layoutControlGroup2"; + this.layoutControlGroup2.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup2.GroupBordersVisible = false; + this.layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem6, + this.layoutControlItem14}); + this.layoutControlGroup2.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup2.Name = "layoutControlGroup2"; + this.layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2); + this.layoutControlGroup2.Size = new System.Drawing.Size(700, 122); + this.layoutControlGroup2.Text = "layoutControlGroup2"; + this.layoutControlGroup2.TextVisible = false; + // + // layoutControlItem6 + // + this.layoutControlItem6.Control = this.tabDataLog; + this.layoutControlItem6.CustomizationFormText = "layoutControlItem6"; + this.layoutControlItem6.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem6.MinSize = new System.Drawing.Size(104, 24); + this.layoutControlItem6.Name = "layoutControlItem6"; + this.layoutControlItem6.Size = new System.Drawing.Size(636, 118); + this.layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem6.Text = "layoutControlItem6"; + this.layoutControlItem6.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem6.TextToControlDistance = 0; + this.layoutControlItem6.TextVisible = false; + // + // layoutControlItem14 + // + this.layoutControlItem14.Control = this.btnLogClear; + this.layoutControlItem14.CustomizationFormText = "layoutControlItem14"; + this.layoutControlItem14.Location = new System.Drawing.Point(636, 0); + this.layoutControlItem14.MinSize = new System.Drawing.Size(60, 26); + this.layoutControlItem14.Name = "layoutControlItem14"; + this.layoutControlItem14.Size = new System.Drawing.Size(60, 118); + this.layoutControlItem14.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem14.Text = "layoutControlItem14"; + this.layoutControlItem14.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem14.TextToControlDistance = 0; + this.layoutControlItem14.TextVisible = false; + // + // gcTargetConfig + // + this.gcTargetConfig.Controls.Add(this.layoutControl1); + this.gcTargetConfig.Location = new System.Drawing.Point(3, 3); + this.gcTargetConfig.Name = "gcTargetConfig"; + this.gcTargetConfig.Size = new System.Drawing.Size(907, 58); + this.gcTargetConfig.TabIndex = 4; + this.gcTargetConfig.Text = "Target Config"; + this.gcTargetConfig.Paint += new System.Windows.Forms.PaintEventHandler(this.gcTargetConfig_Paint); + // + // layoutControl1 + // + this.layoutControl1.Controls.Add(this.cbType); + this.layoutControl1.Controls.Add(this.btnStart); + this.layoutControl1.Controls.Add(this.teTargetIP); + this.layoutControl1.Controls.Add(this.lbTargetIP); + this.layoutControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.layoutControl1.Location = new System.Drawing.Point(2, 22); + this.layoutControl1.Name = "layoutControl1"; + this.layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new System.Drawing.Rectangle(318, 219, 250, 350); + this.layoutControl1.Root = this.layoutControlGroup1; + this.layoutControl1.Size = new System.Drawing.Size(903, 34); + this.layoutControl1.TabIndex = 0; + this.layoutControl1.Text = "layoutControl1"; + // + // cbType + // + this.cbType.Location = new System.Drawing.Point(399, 4); + this.cbType.Name = "cbType"; + this.cbType.Properties.Appearance.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cbType.Properties.Appearance.Options.UseFont = true; + this.cbType.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.cbType.Properties.Items.AddRange(new object[] { + "LFPS-48100", + "LFPR-48300", + "LFPR-48600", + "LFPR-48900", + "LFPS-48150"}); + this.cbType.Size = new System.Drawing.Size(178, 26); + this.cbType.StyleController = this.layoutControl1; + this.cbType.TabIndex = 7; + this.cbType.SelectedIndexChanged += new System.EventHandler(this.cbType_SelectedIndexChanged); + // + // btnStart + // + this.btnStart.Location = new System.Drawing.Point(725, 4); + this.btnStart.Name = "btnStart"; + this.btnStart.Size = new System.Drawing.Size(174, 26); + this.btnStart.StyleController = this.layoutControl1; + this.btnStart.TabIndex = 6; + this.btnStart.Text = "START"; + this.btnStart.Click += new System.EventHandler(this.btnStart_ClickA); + // + // teTargetIP + // + this.teTargetIP.AllowInternalTab = false; + this.teTargetIP.AutoHeight = true; + this.teTargetIP.BackColor = System.Drawing.SystemColors.Window; + this.teTargetIP.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.teTargetIP.Cursor = System.Windows.Forms.Cursors.IBeam; + this.teTargetIP.Font = new System.Drawing.Font("Tahoma", 11.25F); + this.teTargetIP.Location = new System.Drawing.Point(101, 4); + this.teTargetIP.MinimumSize = new System.Drawing.Size(117, 26); + this.teTargetIP.Name = "teTargetIP"; + this.teTargetIP.ReadOnly = false; + this.teTargetIP.Size = new System.Drawing.Size(239, 26); + this.teTargetIP.TabIndex = 5; + this.teTargetIP.Text = "192.168.0.200"; + // + // lbTargetIP + // + this.lbTargetIP.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lbTargetIP.Location = new System.Drawing.Point(4, 4); + this.lbTargetIP.Name = "lbTargetIP"; + this.lbTargetIP.Size = new System.Drawing.Size(93, 26); + this.lbTargetIP.StyleController = this.layoutControl1; + this.lbTargetIP.TabIndex = 4; + this.lbTargetIP.Text = "IP Address"; + // + // layoutControlGroup1 + // + this.layoutControlGroup1.CustomizationFormText = "layoutControlGroup1"; + this.layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.layoutControlGroup1.GroupBordersVisible = false; + this.layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.emptySpaceItem2, + this.layoutControlItem2, + this.layoutControlItem3, + this.layoutControlItem4, + this.lcitemType}); + this.layoutControlGroup1.Location = new System.Drawing.Point(0, 0); + this.layoutControlGroup1.Name = "layoutControlGroup1"; + this.layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2); + this.layoutControlGroup1.Size = new System.Drawing.Size(903, 34); + this.layoutControlGroup1.Text = "layoutControlGroup1"; + this.layoutControlGroup1.TextVisible = false; + // + // emptySpaceItem2 + // + this.emptySpaceItem2.AllowHotTrack = false; + this.emptySpaceItem2.CustomizationFormText = "emptySpaceItem2"; + this.emptySpaceItem2.Location = new System.Drawing.Point(577, 0); + this.emptySpaceItem2.Name = "emptySpaceItem2"; + this.emptySpaceItem2.Size = new System.Drawing.Size(144, 30); + this.emptySpaceItem2.Text = "emptySpaceItem2"; + this.emptySpaceItem2.TextSize = new System.Drawing.Size(0, 0); + // + // layoutControlItem2 + // + this.layoutControlItem2.Control = this.lbTargetIP; + this.layoutControlItem2.CustomizationFormText = "layoutControlItem2"; + this.layoutControlItem2.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem2.MinSize = new System.Drawing.Size(74, 18); + this.layoutControlItem2.Name = "layoutControlItem2"; + this.layoutControlItem2.Size = new System.Drawing.Size(97, 30); + this.layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem2.Text = "layoutControlItem2"; + this.layoutControlItem2.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem2.TextToControlDistance = 0; + this.layoutControlItem2.TextVisible = false; + // + // layoutControlItem3 + // + this.layoutControlItem3.Control = this.teTargetIP; + this.layoutControlItem3.CustomizationFormText = "layoutControlItem3"; + this.layoutControlItem3.Location = new System.Drawing.Point(97, 0); + this.layoutControlItem3.MinSize = new System.Drawing.Size(121, 30); + this.layoutControlItem3.Name = "layoutControlItem3"; + this.layoutControlItem3.Size = new System.Drawing.Size(243, 30); + this.layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem3.Text = "layoutControlItem3"; + this.layoutControlItem3.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem3.TextToControlDistance = 0; + this.layoutControlItem3.TextVisible = false; + // + // layoutControlItem4 + // + this.layoutControlItem4.Control = this.btnStart; + this.layoutControlItem4.CustomizationFormText = "layoutControlItem4"; + this.layoutControlItem4.Location = new System.Drawing.Point(721, 0); + this.layoutControlItem4.MinSize = new System.Drawing.Size(93, 26); + this.layoutControlItem4.Name = "layoutControlItem4"; + this.layoutControlItem4.Size = new System.Drawing.Size(178, 30); + this.layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem4.Text = "layoutControlItem4"; + this.layoutControlItem4.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem4.TextToControlDistance = 0; + this.layoutControlItem4.TextVisible = false; + // + // lcitemType + // + this.lcitemType.AppearanceItemCaption.Options.UseTextOptions = true; + this.lcitemType.AppearanceItemCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; + this.lcitemType.Control = this.cbType; + this.lcitemType.CustomizationFormText = "Type"; + this.lcitemType.Location = new System.Drawing.Point(340, 0); + this.lcitemType.MinSize = new System.Drawing.Size(109, 28); + this.lcitemType.Name = "lcitemType"; + this.lcitemType.Size = new System.Drawing.Size(237, 30); + this.lcitemType.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.lcitemType.Text = "Type"; + this.lcitemType.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.CustomSize; + this.lcitemType.TextSize = new System.Drawing.Size(50, 20); + this.lcitemType.TextToControlDistance = 5; + // + // lcgMain + // + this.lcgMain.CustomizationFormText = "lcgMain"; + this.lcgMain.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + this.lcgMain.GroupBordersVisible = false; + this.lcgMain.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { + this.layoutControlItem1, + this.layoutControlItem5, + this.layoutControlItem8, + this.layoutControlItem11}); + this.lcgMain.Location = new System.Drawing.Point(0, 0); + this.lcgMain.Name = "Root"; + this.lcgMain.Padding = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); + this.lcgMain.Size = new System.Drawing.Size(913, 729); + this.lcgMain.Text = "Root"; + this.lcgMain.TextVisible = false; + // + // layoutControlItem1 + // + this.layoutControlItem1.Control = this.gcTargetConfig; + this.layoutControlItem1.CustomizationFormText = "layoutControlItem1"; + this.layoutControlItem1.Location = new System.Drawing.Point(0, 0); + this.layoutControlItem1.MaxSize = new System.Drawing.Size(0, 62); + this.layoutControlItem1.MinSize = new System.Drawing.Size(104, 62); + this.layoutControlItem1.Name = "layoutControlItem1"; + this.layoutControlItem1.Size = new System.Drawing.Size(911, 62); + this.layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem1.Text = "layoutControlItem1"; + this.layoutControlItem1.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem1.TextToControlDistance = 0; + this.layoutControlItem1.TextVisible = false; + // + // layoutControlItem5 + // + this.layoutControlItem5.Control = this.gcLogging; + this.layoutControlItem5.CustomizationFormText = "layoutControlItem5"; + this.layoutControlItem5.Location = new System.Drawing.Point(0, 577); + this.layoutControlItem5.MaxSize = new System.Drawing.Size(0, 150); + this.layoutControlItem5.MinSize = new System.Drawing.Size(104, 150); + this.layoutControlItem5.Name = "layoutControlItem5"; + this.layoutControlItem5.Size = new System.Drawing.Size(708, 150); + this.layoutControlItem5.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem5.Text = "layoutControlItem5"; + this.layoutControlItem5.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem5.TextToControlDistance = 0; + this.layoutControlItem5.TextVisible = false; + // + // layoutControlItem8 + // + this.layoutControlItem8.Control = this.tabSystemStatus; + this.layoutControlItem8.CustomizationFormText = "layoutControlItem8"; + this.layoutControlItem8.Location = new System.Drawing.Point(0, 62); + this.layoutControlItem8.Name = "layoutControlItem8"; + this.layoutControlItem8.Size = new System.Drawing.Size(911, 515); + this.layoutControlItem8.Text = "layoutControlItem8"; + this.layoutControlItem8.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem8.TextToControlDistance = 0; + this.layoutControlItem8.TextVisible = false; + // + // layoutControlItem11 + // + this.layoutControlItem11.Control = this.gbDataLog; + this.layoutControlItem11.CustomizationFormText = "layoutControlItem11"; + this.layoutControlItem11.Location = new System.Drawing.Point(708, 577); + this.layoutControlItem11.MaxSize = new System.Drawing.Size(203, 150); + this.layoutControlItem11.MinSize = new System.Drawing.Size(203, 150); + this.layoutControlItem11.Name = "layoutControlItem11"; + this.layoutControlItem11.Size = new System.Drawing.Size(203, 150); + this.layoutControlItem11.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + this.layoutControlItem11.Text = "layoutControlItem11"; + this.layoutControlItem11.TextSize = new System.Drawing.Size(0, 0); + this.layoutControlItem11.TextToControlDistance = 0; + this.layoutControlItem11.TextVisible = false; + // + // tmrLogging + // + this.tmrLogging.Interval = 500; + this.tmrLogging.Tick += new System.EventHandler(this.tmrLogging_Tick); + // + // menuStrip1 + // + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripMenuItem1}); + this.menuStrip1.Location = new System.Drawing.Point(1, 24); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(686, 24); + this.menuStrip1.TabIndex = 2; + this.menuStrip1.Text = "menuStrip1"; + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size(127, 20); + this.toolStripMenuItem1.Text = "toolStripMenuItem1"; + // + // serialPort1 + // + this.serialPort1.ErrorReceived += new System.IO.Ports.SerialErrorReceivedEventHandler(this.serialPort1_ErrorReceived); + this.serialPort1.PinChanged += new System.IO.Ports.SerialPinChangedEventHandler(this.serialPort1_PinChanged); + this.serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.serialPort1_DataReceived); + // + // fmMain + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(913, 729); + this.Controls.Add(this.lcMain); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "fmMain"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "AMO LFP Monitor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.fmMain_FormClosing); + ((System.ComponentModel.ISupportInitialize)(this.lcMain)).EndInit(); + this.lcMain.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.gbDataLog)).EndInit(); + this.gbDataLog.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl6)).EndInit(); + this.layoutControl6.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.cbLogTime.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemLogTime)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem13)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.tabSystemStatus)).EndInit(); + this.tabSystemStatus.ResumeLayout(false); + this.pgSystem1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl4)).EndInit(); + this.layoutControl4.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem7)).EndInit(); + this.pgSystem2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl3)).EndInit(); + this.layoutControl3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem9)).EndInit(); + this.pgSystem3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl5)).EndInit(); + this.layoutControl5.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gcLogging)).EndInit(); + this.gcLogging.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl2)).EndInit(); + this.layoutControl2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.tabDataLog)).EndInit(); + this.tabDataLog.ResumeLayout(false); + this.tpDataLog.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.panelControl1)).EndInit(); + this.panelControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.meDataLog.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem14)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gcTargetConfig)).EndInit(); + this.gcTargetConfig.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).EndInit(); + this.layoutControl1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.cbType.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlGroup1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.emptySpaceItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcitemType)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.lcgMain)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.layoutControlItem11)).EndInit(); + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Timer tmrDisplay; + private DevExpress.XtraLayout.LayoutControl lcMain; + private DevExpress.XtraLayout.LayoutControlGroup lcgMain; + private DevExpress.XtraEditors.GroupControl gcTargetConfig; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem2; + private DevExpress.XtraEditors.LabelControl lbTargetIP; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private IPAddressControlLib.IPAddressControl teTargetIP; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraEditors.SimpleButton btnStart; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private DevExpress.XtraEditors.GroupControl gcLogging; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraLayout.LayoutControl layoutControl2; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; + private DevExpress.XtraTab.XtraTabControl tabDataLog; + private DevExpress.XtraTab.XtraTabPage tpDataLog; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private DevExpress.XtraEditors.PanelControl panelControl1; + private DevExpress.XtraEditors.MemoEdit meDataLog; + private DevExpress.XtraTab.XtraTabControl tabSystemStatus; + private DevExpress.XtraTab.XtraTabPage pgSystem1; + private DevExpress.XtraTab.XtraTabPage pgSystem2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8; + private DevExpress.XtraLayout.LayoutControl layoutControl4; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup4; + private Controls.ucShelfStatus ucShelfA; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7; + private DevExpress.XtraEditors.ComboBoxEdit cbType; + private DevExpress.XtraLayout.LayoutControlItem lcitemType; + private DevExpress.XtraLayout.LayoutControl layoutControl3; + private Controls.ucShelfStatus ucShelfB; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem9; + private DevExpress.XtraTab.XtraTabPage pgSystem3; + private DevExpress.XtraLayout.LayoutControl layoutControl5; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup5; + private Controls.ucShelfStatus ucShelfC; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem10; + private DevExpress.XtraEditors.GroupControl gbDataLog; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem11; + private DevExpress.XtraLayout.LayoutControl layoutControl6; + private DevExpress.XtraEditors.SimpleButton btnLogStart; + private DevExpress.XtraEditors.ComboBoxEdit cbLogTime; + private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup6; + private DevExpress.XtraLayout.LayoutControlItem lcitemLogTime; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem13; + private DevExpress.XtraEditors.SimpleButton btnOpenLogFolder; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem12; + private System.Windows.Forms.Timer tmrLogging; + private System.Windows.Forms.MenuStrip menuStrip1; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1; + private DevExpress.XtraEditors.SimpleButton btnLogClear; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem14; + private System.IO.Ports.SerialPort serialPort1; + } +} + diff --git a/LFP_Manager/fmMain.cs b/LFP_Manager/fmMain.cs new file mode 100644 index 0000000..6a63421 --- /dev/null +++ b/LFP_Manager/fmMain.cs @@ -0,0 +1,278 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.Net; +using SnmpSharpNet; + +using System.Threading; + +using LFP_Manager.DataStructure; +using LFP_Manager.Threads; +using LFP_Manager.Utils; + +using System.Diagnostics; + +namespace LFP_Manager +{ + public partial class fmMain : Form + { + DeviceSystemData[] SystemData; + csSnmpThread snmpThread; + + public fmMain() + { + InitializeComponent(); + + StructDataInit(); + + cbType.SelectedIndex = 0; + + ucShelfA.Start(0, SystemData[0]); + ucShelfB.Start(1, SystemData[1]); + ucShelfC.Start(2, SystemData[2]); + + tabSystemStatus.TabPages[1].PageVisible = false; + tabSystemStatus.TabPages[2].PageVisible = false; + + pgSystem1.Text = "SYSTEM"; + + tmrDisplay.Start(); + } + + private void StructDataInit() + { + SystemData = new DeviceSystemData[csConstData.SystemInfo.MAX_SYSTEM_SIZE]; + + for (int i = 0; i < csConstData.SystemInfo.MAX_SYSTEM_SIZE; i++) + { + SystemData[i] = new DeviceSystemData(); + SystemData[i].ValueData = new DeviceValueData(); + SystemData[i].ValueData.CellVoltage = new short[csConstData.SystemInfo.MAX_MODULE_CELL_SIZE]; + SystemData[i].ValueData.CellTemperature = new short[csConstData.SystemInfo.MAX_MODULE_TEMP_SIZE]; + + SystemData[i].AvgData = new DeviceAvgData(); + SystemData[i].StatusData = new DeviceStatusData(); + + SystemData[i].CalibriationData = new DeviceCalibration(); + SystemData[i].CalibriationData.CellVoltge = new CellVoltageCalib(); + SystemData[i].CalibriationData.SystemVoltage = new SystemVoltageCalib(); + SystemData[i].CalibriationData.ForcedBalancing = new ForcedBalControl(); + SystemData[i].CalibriationData.Battery = new BatteryParameter(); + } + } + + private void UpdateData(object sender, DeviceSystemData[] rData) + { + SystemData = rData; + ucShelfA.UpdateData(SystemData[0]); + ucShelfB.UpdateData(SystemData[1]); + ucShelfC.UpdateData(SystemData[2]); + } + + #region EVENT FUNCTION + + private void tmrDisplay_Tick(object sender, EventArgs e) + { + if (snmpThread != null) + { + string data = snmpThread.GetResult(); + + if (data != "") + { + meDataLog.Text = data + "\r\n" + meDataLog.Text; + } + } + } + + private void fmMain_FormClosing(object sender, FormClosingEventArgs e) + { + tmrDisplay.Stop(); + if (snmpThread != null) + snmpThread.disposeThread(); + } + + private void btnStart_Click(object sender, EventArgs e) + { + if (snmpThread.GetStatus()) + { + snmpThread.Start(teTargetIP.Text); + teTargetIP.Enabled = false; + btnStart.Text = "Stop"; + } + else + { + snmpThread.Stop(); + teTargetIP.Enabled = true; + btnStart.Text = "Start"; + } + } + + private void btnStart_ClickA(object sender, EventArgs e) + { + //if (snmpThread == null) + //{ + // snmpThread = new csSnmpThread(Config, SystemData); + // snmpThread.OnUpdate += UpdateData; + + // snmpThread.Start(teTargetIP.Text); + + // teTargetIP.Enabled = false; + // cbType.Enabled = false; + // btnStart.Text = "Stop"; + //} + //else + //{ + // snmpThread.Stop(); + // snmpThread.disposeThread(); + // snmpThread = null; + + // teTargetIP.Enabled = true; + // cbType.Enabled = true; + // btnStart.Text = "Start"; + //} + } + + #endregion + + #region SUB EVENT + + private void cbType_SelectedIndexChanged(object sender, EventArgs e) + { + switch (cbType.SelectedIndex) + { + case 0: // KT LFPS-48100 + case 1: // KT LFPR-48300 + case 4: // ESS LFPS-48150 + tabSystemStatus.TabPages[0].PageVisible = true; + tabSystemStatus.TabPages[1].PageVisible = false; + tabSystemStatus.TabPages[2].PageVisible = false; + + pgSystem1.Text = "SYSTEM"; + break; + case 2: // KT LFPR-48600 + tabSystemStatus.TabPages[0].PageVisible = true; + tabSystemStatus.TabPages[1].PageVisible = true; + tabSystemStatus.TabPages[2].PageVisible = false; + + pgSystem1.Text = "SYSTEM #A"; + pgSystem2.Text = "SYSTEM #B"; + break; + case 3: // KT LFPR-48900 + tabSystemStatus.TabPages[0].PageVisible = true; + tabSystemStatus.TabPages[1].PageVisible = true; + tabSystemStatus.TabPages[2].PageVisible = true; + + pgSystem1.Text = "SYSTEM #A"; + pgSystem2.Text = "SYSTEM #B"; + pgSystem3.Text = "SYSTEM #C"; + break; + } + } + + #endregion + + private void btnOpenLogFolder_Click(object sender, EventArgs e) + { + System.Diagnostics.Process ps = new System.Diagnostics.Process(); + ps.StartInfo.FileName = "explorer.exe"; + ps.StartInfo.Arguments = csLog.GetLogFolder(Application.ExecutablePath); + ps.StartInfo.WorkingDirectory = csLog.GetLogFolder(Application.ExecutablePath); + ps.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal; + + ps.Start(); + } + + #region LOG TIMER TICK EVENT + + DateTime bakDateTime; + + private void tmrLogging_Tick(object sender, EventArgs e) + { + DateTime cDate = DateTime.Now; + int ss; + + if (cbType.Enabled == false) + { + if (SystemData[0].CommFail == false) + { + ss = Convert.ToInt16(cbLogTime.Text); + + if ( + ((bakDateTime.Minute != cDate.Minute) + || (bakDateTime.Second != cDate.Second)) + && ((cDate.Second % ss) == 0) + ) + { + for (int i = 0; i < csConstData.SystemInfo.MAX_SYSTEM_SIZE; i++) + { + try + { + //csLog.SystemDataLog(i + 1, Config, SystemData[i], cDate, Application.ExecutablePath); + bakDateTime = cDate; + } + catch (Exception ex) + { + string snmpResult = "[" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "] " + String.Format("Exception : {0}", ex.Message); + + meDataLog.Text = snmpResult + "\r\n" + meDataLog.Text; + } + } + } + } + } + } + + #endregion + + bool logging = false; + + private void btnLogStart_Click(object sender, EventArgs e) + { + if (logging == true) + { + tmrLogging.Stop(); + cbLogTime.Enabled = true; + logging = false; + btnLogStart.Text = "Log Start"; + } + else + { + tmrLogging.Start(); + cbLogTime.Enabled = false; + logging = true; + btnLogStart.Text = "Log Stop"; + } + } + + private void btnLogClear_Click(object sender, EventArgs e) + { + meDataLog.Text = ""; + } + + private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) + { + + } + + private void serialPort1_ErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e) + { + + } + + private void serialPort1_PinChanged(object sender, System.IO.Ports.SerialPinChangedEventArgs e) + { + + } + + private void gcTargetConfig_Paint(object sender, PaintEventArgs e) + { + + } + + } +} diff --git a/LFP_Manager/fmMain.resx b/LFP_Manager/fmMain.resx new file mode 100644 index 0000000..d9621e2 --- /dev/null +++ b/LFP_Manager/fmMain.resx @@ -0,0 +1,4586 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 128, 17 + + + 260, 16 + + + 376, 16 + + + 59 + + + + + AAABAAQAICAAAAEAGACoDAAARgAAADAwAAABABgAqBwAAO4MAACAgAAAAQAYACjIAACWKQAAAAAAAAEA + GAAoIAMAvvEAACgAAAAgAAAAQAAAAAEAGAAAAAAAgAwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7/ + ///+/v7////////////////////////////////////////////////////////+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7+/v3+/v3+/v3+/v7+/f3////////+/v7///////////////////// + ///////////////////////////+/v7////+/v7+/f3+/v7+/v3+/v3+/v3+/v7////7+ff///////// + ///////////////+/v3+/v7////+/v7////////////////////////////////////////+/v7////+ + /v7+/v7////////////////////////7+PbCnHejazCkbTKkbDKlbjSdYTDLrIr////9/Pz+/v7///// + ///////////////////////////////////////////+/v79/fz////BnHSeYjClbjSkbDKkbDOjazDc + x7L49PGkbDKEOACKQwCJQQCHPgCNRwTt49n+/v39/Pz+/v7+/v7///////////////////////////// + ///+/v7+/v79/Pv//v7j0sKHPgCJQACJQQCLRACCNgCufkv////////q3tKOSQePSgSPSwKRTQSHPgCt + e0f////9/Pv+/v7////////////////////////////////+/v7////9/f39/Pv9/PuiaS6JQQCQTQOP + SwKNSAOUUxLz7ef+/f37+Pb////AmnKGOwCQTAKOSQCPSwKHPwDaxa7////8+/r+/v7+/v7///////// + ///////////+/v7///7+/v77+vj////OsJGGPACQTAKOSQCQTAKGPADNr4/////7+ff9/Pv9/fz38u6Z + WhuLQwCPSgGPSgGLRQGcXyH59vP9/fz9/fz////+/v7////////+/v7+/v7////+/v77+vn////u5NqS + Tw+OSAKOSQCPSwKJQACiai/8+vn9/Pz9/f3+///9/Pv////WvqWHPQCQTAOOSQCQTQOGPADDn3j////8 + +/r+/v7////+/v7+/v7+/v79/fz8+/r9/f3////u49mdYSiKQwCPSwGOSQCPSwKKQgDi0L/////9/Pv+ + /v7//v7+/v79/Pz///+seUOIPwCQTAKOSQCOSQKNSAbq39P+/v39/Pz+/v7////////////////////+ + /v7SuJ6WVRiLRQCRTwaQTASSUAeHPgC4jV7////9/Pv+/v7////+/v7+/v79/Pz+/v7r39SOSQeOSgKO + SQCQSwKHPwCsekT+/v/9/Pz+/v78+/r49PDy6uPi0cDDn3yZXB9/MACEOACHPgCGOwCFPACEOgCTURDz + 7Ob9/fz9/f3////+/v7////////+/v78+/r////CnneGPACQTAKOSQCQTAKHPgDYwan////9/Pz38u7o + 2szgzbvTuZ/MrY/St5zeyrTcyLLcx7Hcx7HdybPVvKfl1cX////9/fz+/v7+/v7////////+/v7////9 + /f39/Pz59fObXiCKQwCPSgGPSgGLRAGaXB349PH9/fz+/v/////////////////28e3AmnrEn3rDn3nE + oXu+lnbcxrD////9/Pv+/v7////////////////////+/v7+/v79/Pv////bxa+HPgCPSwKOSQCQTAKG + PADAmnH////8+/r9/fz9/Pv7+ff9/Purd0F/MACGOwCFOgCEOQCEOADj0sH+/fz9/Pz+/v7+/v7///// + ///////////////////+/v79/Pz///+ufkqHPgCQTAKOSQCOSgKNRwPp3M/+/v79/Pv8+/r////YwaqH + PgCSTwaQTAOSTwaHPgDDn3n////9/Pv+/v7////////////////////////////+/v7+/v79/Pz+/v7t + 4tiNSAaNSAKOSQCQTAKJQQCqd0D+/v79/Pv9/fz49fKbXyCMRQGPSwGPSgGLRAGYWRn38+/9/fz9/f3/ + ///+/v7///////////////////////////////7+/v79/Pv////EoHqFOwCQTQOOSQCQTQOHPwDUu6H/ + ///////Dn3iGPQCQTQOOSQCQTAOGPQDWvaT////9/Pv+/v7+/v7///////////////////////////// + ///+/v7////9/f39/Pv59vScYCOLRQGPSwKPSgGMRQGWVhf7+ffu5duNSAaOSQKOSQCQTAKJQQCqd0D+ + /v79+/r+/v7////////////////////////////////////////////+/v7+/v78+/r////cx7GJQgCQ + TAOOSQCQTAKFOwC/mXKzhVSGPACQTAKOSQCPSgKOSQfq3dH////9/Pv+/v7+/v7///////////////// + ///////////////////////////////+/v79/Pv///+wgU6HPgCQSwKOSQCPSgGMRgCMRwCPSgCOSQCQ + TAKGPADAmnH////9/Pr+/v7////////////////////////////////////////////////////+/v7+ + /v79/Pz+/v3u5NuPSwmNRwGOSQCPSgCPSwGPSgGPSQCPSgGLRACYWRn38u79/fz9/fz///7+/v7///// + ///////////////////////////////////////////////////+/v79/Pv////HpoKFOwCQTQOOSQCP + SgCPSgCOSQCQTAOGPQDVvaP////9/Pv+/v7+/v7///////////////////////////////////////// + ///////////////+/v7////9/f39/fz7+fefZSiIQACOSQCNRwCNRwCOSQCGPQCrd0H+///9/fz+/v7/ + ///////////////////////////////////////////////////////////////////+/v7+/v79/Pv/ + ///fzLmSTxWXWBWWVhSWVhSWVhSWVRrq3dH////9/Pz+/v7+/v7///////////////////////////// + ///////////////////////////////////////////+/v7+/v7////38+728e328e328e328Oz49fD/ + ///+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////+/v7////////+/v3////////////////////////+/v3////////+/v7///////////////// + ///////////////////////////////////////////////////////////+/v7////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7////+/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAGAAAAAAAgBwAAAAAAAAAAAAAAAAAAAAAAAD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7////+/v7+/v7///////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + /////////v7+/v7///////////////////////////////////////////////////////////////// + ///////////////////////////+/v7////////+/v7///////////////////////////////////// + ///38u38+vn8+vj8+vj8+vj8+vj8+vj8+vj7+ff////+/v3+/v7+/v7+/v7///////////////////// + ///////////////////////////////////////////////////////////////+/v7+/v7+/v7////7 + +ff8+vj8+vj8+vj8+vj8+vj8+vj7+ff59fK7kmmbXh+cXyCcXyCcXyCcXyCbXyCdYSGWVR3Fon3////9 + /Pz+/v7///////////////////////////////////////////////////////////////////////// + ///////+/v7+/v79/f39/fz///+1iFqXVx2cYCGcXyCcXyCcXyCcXyCbXiCcYCPn2Mv7+fencTqDOACM + RgCLRACLRACLRACLRACKQwCMRQLq3tL////9/Pz+/v7///////////////////////////////////// + ///////////////////////////////////////////+/v79/Pz////Zw6uGOwCMRQCLRACLRACLRACL + QwCNRwCCNQC4jmH////////r39SNRwWOSgOOSgGPSgGPSgGPSgGQTAOIPwCpdD3////9/fz9/f3////+ + /v7////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /f359vOZWxyLRACQSwKPSgGPSgGPSgGPSgGMRQKXWBn49PD+/fz8+vn////BnHWFOgCQTAGOSQCPSgCP + SgCOSQCPTAKFOwDVvaT////9/Pv+/v7///////////////////////////////////////////////// + ///////////////////////+/v79/Pv////BnXaEOgCQTAKOSQCPSgCPSgCOSQCPSwGGOwDVvKL////8 + +/r9/Pz9/f349fKZXB2KQwCPSgGOSQCOSQCOSQCPSgGLRAGXWBj38+/+/f39/f3+/v7+/v7///////// + /////////////////////////////////////////////////v7+/v79/fz+/v7r39SMRwWNSAGOSQCO + SQCOSgCOSQCPSwGHPgCpdT7////9/Pz+/f3+/v79/Pv////YwquGPACPSwGOSQCPSgCPSgCOSQCQTAGF + OgC+l23////9/fz+/v7////+/v7////////////////////////////////////////////////+/v7+ + ///9/f39/Pv///+qdkGHPQCPSwGOSQCPSgCPSgCOSQCOSAGLRALp3dH////9/Pv+/v7+/v7+/f39/fz/ + //+se0aHPgCQTAKOSQCPSgCPSgCOSQCOSQKLRALn2s3//v79/Pz+/v7///////////////////////// + ///////////////////+/v7+/v7////+/v78+vn////Rt5qGPACQSwKOSQCPSgCPSgCOSQCQTAKFOwC/ + mXL////9/Pz+/v7////////+/v79/fz///7s4deNSAeNSAGOSQCOSQCOSQCOSQCQSwKHPgCnczv+/v79 + /Pz9/f3+/v7+/v7////////////////////////////+/v7+/v7////////9/f38+/r////j08KNSQiN + RgGOSgCOSQCOSQCOSQCPSgCLRACYWhv48/D+/f39/f3+/v7+/v7+/v7////+/v79/Pz////Dn3qFOgCQ + TAGOSQCPSgCPSgCOSQCQSwGGPADSuJ3////9/Pz+/v7////////////////////////+/v7+/v7///// + ///+/v79/Pv////////cx7KPTA2LRQCPSgCOSQCPSgCPSgCOSQCPSwGGPADWvqb////9/Pz+/v7///// + ///////////+/v79/f3+/f359/SbXiCKQgCPSgGOSQCOSQCOSQCPSgCLRQCVVBT18Oz+/f39/fz+/v7+ + /v7////+/v7+/v7+/v7+/v7+/f39/Pz9/Pv////////49PC/mHSKQgCMRQCPSgCOSQCPSgCPSgCOSQCQ + TAKGPQCreEL////9/Pz9/f3+/v7+/v7////////////////+/v79/Pv////axK6FPACPSwKOSQCPSgCP + SgCOSQCQTAKEOQC8lGn////9/Pv+/v7////////////////////////////////////49fLQs5ibXyWH + PgCPSwKQTQOQSwKQTAOQTAKQTAKPSwOOSgOMRQPq3tP////9/Pz+/v7////////////////////+/v7/ + ///+/v39/Pz///+vf0uHPgCQSwGOSQCOSgCPSgCOSQCOSQGLRAHm18n////9/fz+/v7////+/v36+Pb5 + 9fLz7ejo2s3RtpuwgFCNRwN9LQCCNQCHPgCGOwCFOwCGOwCGOwCGOwCFOwCGPAB/MADCnnj////9/Pz+ + /v7////+/v7////////////////////+/v7+/v79/fz///7v5t6PSgiNRwGOSQCPSgCOSQCOSQCPSwGJ + QAClbjX+/f39/f39/f3//v769/XfzbjZw67QtJrEoX67kmq6kGa/mXLDn3rEoHzEoHvEoHvEoHvEoHvE + oHvEoHvDoHvDnnvEoH369/X+/v79/f3+/v7+/v7////////////////////////////////+/v79/Pv/ + ///GpICFOgCQTAKOSQCPSgCPSgCOSQCQTAKGPADQtJf////9/Pz+/v7///////////////////////// + ///////////////////////////////////////////////////////+/v7+//////////////////// + ///////////////////+/v7+/v79/f3+/f36+PadYiSKQwCPSgCOSQCOSQCOSQCPSgGMRgGUVBP07uj+ + /v39/fz+/v7+/v7+/v3+/f39/fz9/Pv7+vj+/f3cyLSXVyGcYCKcXyCcXyCcXyCcXyCdYSKUUxzDn3z9 + /Pz9/Pz9/f3////+/v7////////////////////////////////////////+/v79/Pz////cx7KHPwCP + SgGOSQCPSgCPSgCOSQCQTAKGPAC5kGP////9/Pv+/v7//v7+/v7+/v7+/v79/f39/fz7+feeYyaGPACL + RQCLRACLRACLRACLRACIQACQTAnw59/+/v79/f3+/v7+/v7///////////////////////////////// + ///////+/v7///79/f39/Pv///+xglCGPACQSwGOSQCPSgCOSQCOSQCOSQGKQgDk1MT////9/fz+/v7/ + ///////+/v79/Pz////HpoOFOgCQTAKOSgCPSgGPSgGOSgGQTAKFOwDPs5b////9/Pv+/v7///////// + ///////////////////////////////////////////+/v/+/v79/Pz+/v7w59+PSgiMRgGOSgCPSgCP + SgCOSQCPSwGIQACiajD+/f39/f39/f3///7+/v79/fz+/v7w6OCPSgmNRwGOSQCOSQCOSQCOSQCPSwKI + PwCiaS79/fz9/fz9/f3+/v7+/v7///////////////////////////////////////////////////7/ + ///+/v79/Pv////Ip4WFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOQDOsZP////9/Pv+/v7+/v79/Pv///+x + glGFOwCQTAKOSQCPSgCPSgCOSQCOSgKIQADj08L////9/Pz+/v7///////////////////////////// + ///////////////////////////////+/v7+/v79/f39/f38+vmeZCeJQQCPSwGOSQCOSQCOSQCPSgGM + RQGRTw7z7ef+/v39/f39/Pz////fzLiHPQCPSgGOSQCPSgCPSgCOSQCQTAGFOwC4jF/////9/fz+/v7+ + /v7+/v7////////////////////////////////////////////////////////////////+/v79/fz/ + ///fzLqHPgCOSgGOSQCPSgCPSgCOSQCQTAGFPAC3jF7////9/Pz+/f38+vifZCiJQQCPSwGOSQCOSQCP + SgCOSgGLRQGTURDz7ef+/v39/f3+/v7///////////////////////////////////////////////// + ///////////////////+/v7////+/v79/Pv///+zhVWFOwCQTAKOSQCPSgCPSgCOSQCOSgKJQQDi0cH+ + /v7////JqYeFOgCQTAKOSQCPSgCPSgCOSQCQTAKEOgDNsJH////9/Pv+/v7////+/v7///////////// + ///////////////////////////////////////////////////////+/v7+/v79/fz+/v3w6eGRTQyN + RwGOSQCOSQCOSQCOSQCPSwKJQQChaC7////x6eKRTgyNRgGPSgCPSgCOSQCOSQCPSwGJQQCiajD8+/r9 + /fz9/f3+/v7+/v7///////////////////////////////////////////////////////////////// + ///////////////+/v79/Pz////LrIuFPACQTAGOSQCPSgCPSgCOSQCQSwGFOwDPspW5j2SGPACQSwGO + SQCPSgCPSgCOSQCOSgGJQgDj0sL////9/Pz+/v7///////////////////////////////////////// + ///////////////////////////////////////////+/v7+/v79/f39/fz9/PygZyuJQACPSwGOSQCO + SQCOSQCOSQCOSACOSACNSACOSQCOSQCPSgCPSgCOSQCQTAKFOwC3i13////9/Pv+/v7////+/v7///// + //////////////////////////////////////////////////////////////////////////////// + ///+/v79/Pv////hz72JQACPSwKOSQCPSgCPSgCOSQCPSgCOSQCOSQCPSgCOSQCOSQCOSQCOSQCMRgGS + UA/y6+X+/v39/fz+/v7+/v7///////////////////////////////////////////////////////// + ///////////////////////////////+/v7////+/v79/fz///+1iVuGPACQSwGOSQCPSgCPSgCOSQCP + SgCPSgCOSQCPSgCPSgCOSQCQTAGFOgDNrpD////9/Pz+/v7///////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v79/f3+ + /v3y6+SSUA6MRQGOSgCOSQCOSQCPSgCPSgCPSgCPSgCOSQCOSQCPSwGIQAChaS78+/r9/Pz9/f3+/v7+ + /v7///////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/v79/Pv////NsJGFOwCQSwGOSQCPSgCPSgCPSgCPSgCOSQCPSgCO + SQCOSQGJQQDi0cD////9/Pv+/v7///////////////////////////////////////////////////// + ///////////////////////////////////////////////////////+/v7+/v79/f39/Pz8+/qiai+J + QACRTQSPSwKQSwKQSwKQSwKQSwKPSwKRTgSGPAC2iVr////9/Pv+/f3////+/v7///////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////+/v79/Pv////j08KGPQCHPQCHPgCIPgCIPgCIPgCIPgCHPwCFOgCRTgvy6uP+/f39 + /fz+/v7+/v7///////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7////+/v79/f3////JqIeufFOzhVezhFaz + hFazhFayhFazhVete1TWvqb////9/fz+/v7///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/v7+/v3////////////////////////////////////////+/v3+/v7+/v7+/v7///////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////+/v7+/f3+/f3+/fz+/fz+/fz+/fz+/fz+/fz+ + /f3+/f3///////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAgAAAAAABAAABABgAAAAAAADIAAAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v7+//////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/////v7+/f38/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////v7+ + /f39//////////////////////////////////////////////////////////////////////////// + ////////////////////////2MCn3Maw3Maw3Maw3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Maw3Mex2cOs8uvk/v7+/f39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/f39////4tHA2sSs3Mex3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew + 3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mew3Mex3Mew3Mex2cKr9vHtqXQ9ikIAiUEAiUEAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUEAikMAgzgAq3hH/v39 + /fz8/v79/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/fz8////49PCiUIBiUEAiUEA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAiUIAiUEAi0MAgzkA + nmMq+vj1/v39sYJUhz4AkU0Ej0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0oBj0oBkEwDhz0A1buh/////fz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/Pz8/Pr5pGw1iEAAkE0Dj0oBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sDjEYG49LC////////7OLWkU4PjEYBj0oBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAj0sBikQAmFod9fDq/v39/v39/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////7+/v7+/v7+/v7+/Pv6////za+QhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjsAuo9l////+/n4+ff1//// + x6aFhDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAkEwChTwAv5dw/////Pz7/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/f38/v798evik1IV + i0UBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + j0oBi0QBlVQX8+zl/f39/fz8/fz8/fz8+vbzoGYuiEAAj0sBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjkoAjkkAjUkBjEgG6NvN/////fz8/v7+/v7+/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////7+/f7+/v7+/fz7////topehjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sChTwA0LWY/////Pv7/v7+/v///Pz7////3sq3iEABjkoC + jkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEsC + hz8Ap3I//fz7/fz8/v79/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v39/v///Pz7////3867iEAAjkoCjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsChz8ApnE5/fz8/Pz7 + /v7+/v7+/v7+/v7+/Pv7////tIZYhjwAkEwBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sChTwA0rec/////Pz7/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v79/fz8 + +/r4oWgwiEAAj0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0kAjkkAjkoAjkkBikQF5dbG/////fz7/v7+/v7+/v7+/v7+/fz8/v7+8OffkU8QjEYBj0oAjkkAjkoA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAj0oBikMAllcb9O/p + /v39/f38/v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/v7+/Pz7////yquLhTsAj0wCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChToAu5Nq/////Pz7//7+/v7+/v7+/v7+/v7+ + ///+/Pz7////y6yNhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAkEwBhTsAu5Rr/////Pz7/v7+/v7+/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz8/v7+7+bckU4PjEYBjkkBjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjUkAj0oBi0QBllcb + 9e/p/v39/f38/v7+/v7+/////////v7+/v7+/v79/fz8+vj1oWgwiUEAj0sBjkgAjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkCi0QF5NXG/////fz8/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//7+/f39 + /v7+/fz7////tIdZhjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAj0sChj0A0rec/////Pz7/v7+/v7+/////v7+/v7+/////v7+/v7+/Pz7//// + 38y4ikIDj0oCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0sBhz8Ap3I8/Pv5/fz8/v39/v79/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/Pz7////3sm2iUIBj0oBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEsCiD8AqHM+/fz7/Pz8/v7+/v7+/v7+ + /v7+/////////v7+/v7+/v7+/v7+/Pv7////topehTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEsChjwA0bWa/////Pv6/v7+/f39/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/f39/fz8+vj2n2UriUEA + j0sBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkoA + jkgBjEYG5tjJ/v7+/f37/v7+/v7+/////////////////////////v7+/v7+/f39/v398uriklETi0YB + j0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oB + i0UAlVYZ8+3m/f79/f38/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v7+/Pv6////yKeFhTsAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChjwAvpZv/////Pz7/v/+/v7+/v7+/v7+//////////////// + /v7+/v7+/v7+/v7+/Pz7////za6QhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAuZBm/////Pv6/v7+/v7+/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v79/v7+/fz7/v7+7ePYkU4QjEcBjkkBjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0QBmFof9e/p/f39/v39 + /v7+/v7+/////////////////////////////////v7+/v7+/v7+/fz8+/n3o2s1iUEAkEsBjkkAjkkA + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjkkCikQD5NPD + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v79/Pv7/v/+ + sIFShjwAkEwCjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAj0sChj0A1Lqg/////Pz7/v/+/v7+/////v7+/////////////////////////v7+/////v7+ + /v7+/fz7////4tHBikMEjkkCjkoAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0sBiEAApW43/Pv5/fz7/v39/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/////Pv6////2sawiD8Aj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChz8AqnhE/v79/Pz7/v7+/v7+/v7+/v7+//////// + /////////////////////////v7+/v7+/v7+/v7//fz7////uI1hhj0AkEwCjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChj0AzrCT/////Pv6/v7+ + /f39/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/v7+/f38/f389vLtm18jikMAj0oBjkkAjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjUgH6NzO + /v7+/fz8/v/+/v7+/////////////////////////////////////////////////v7+/v7+/f38/v39 + 8uvjlFUWi0UBj0oBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oAjkkAj0oBjEYBlFMW8enh/v79/fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//v7+//7+/f39 + /Pv6////t4thhjwAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAkEwChTsAwJp0/////fz6/v7+/v7+/v7+/v7+//////////////////////////// + /////////////v7+/////v7+/v7//Pv7////zrGUhjwAj0wCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwChjwAt4xg/////Pv7/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7//v3+/Pr6////0bWYhj0Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sBi0MAmVsg9vHs/v39/f39/v7+/v7+//// + /////////////////////////////////////////////////v7+/v7+/v7+/v7+/f38/Pr4pW85iD8A + kEsCjUkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + jkoCikIC4tHA/////Pv7/v7+/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7++/r5////38y4i0UHjUgBjkoA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wC + hz4A1r6m/////Pz7/v7+/v7+/////v7+//////////////////////////////////////////////// + /////////v7+/v7+/fz8////49LCjEYFjkkCjkoAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAomoy+/n2/fz7/v39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7+/v7+ + /v7++/r5////5NTCj0wQi0UAj0oAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkEwChz8ArHpI/v7+/fz7/f79/v7+/v7+/v7+//////////////////// + /////////////////////////////////////v7+/////v7+/v7+/Pz7////upBnhTwAkEwCjUgAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0wChToAyqyM + /////Pv6/v7+/v7+/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/////v7+/v7+/v7+/f39/Pr5////4c+9kE0SikQAj0sBjkkAjkkAj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUgCjkoJ6d3R/v7+/f38/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v39/f399O3nl1gci0UBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oAjkkAj0oAi0UBk1ET8Ofe/v39/fz7/v7+/v7+/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////////v7+//7+/v7+/Pv6/f38////1LuijkkLi0QA + j0sBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChjwAwp14/////Pv6/v7//v7+/////v7+//////////////////////////////////////// + /////////////////////////////////v7+/v7+/Pv6////0baahj4AkEwCjkkAjkkAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhTwAtYlc/////Pv6/v7+ + /v7+/v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/////v7+/v7+/v7+ + /v79+/v5////+/n1wJp1iEEAjUYAj0wBjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBikMAnWAn9/Lu/fz7/f39/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7 + /Pv5p3I9iD4AkEwCjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0oCiUEA3826/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/////////v7+/v7+/v79/Pv6/f3+////6dzPpW89hjwAj0oBj0oBjkkAjkkAj0oAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAj0sChz4A2MKq//// + /Pv6/v7+/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////5dbGi0UGjkkCjkoAjkkAj0kAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0sBiEAAoGct+vj1/fz7/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/////////v7+/v7+/f39/fz7/fz8////+vj0xaOCjkkJhz8A + j0sBj0oAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAkEwChz0Arn1L/////Pv6/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/////v39/v/+/Pv6////vZZuhjsA + kEwDjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUgA + j0wChDoAyKiI/////Pv6/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+///////////+/v7+/v7+/v79/Pv6 + /f38////////28ayn2cyhTwAjEcAj0sCjkkAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjUcCjkoK69/U/v7//fz7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/f39/f399fDrl1kci0UBj0sBjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjEUAkU4P7+bc/v79/fz7/v7+/v7+/////v7+//////// + /////////////////////////////////////////////////////////v7+/////v7+/v7+/////v7+ + /////v7+/v7+/v7+/fz8/Pv6/v7+////////4M68qnhHiD8AiUEAj0sCj0oAjkkAjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0DhjwA + xaJ//////Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/Pv6////07qghz4Aj0wDjkkAjkkA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAkEwBhjwAsoRU + /v///Pv6/v7+/v7+/v7+/////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+///+/v7+/v7+/////v7+/v7+/v79/fz8/Pv6/fz8////////+/n32sSvqnZHikIAhz8AjkoA + j0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjUkAj0sCikMAnmMp+PXx/f38/f39/v7+/v7+//////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/Pz7/f38qXVBiEAAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0oBiD8A3cm0/////Pv6/////f39/v7+/v7+//////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v39/fz7/Pv6/fz7/f7+//////////// + 7OHWyaiHn2UviD8Ahz4AjkkAj0sCjkkAjkkAjkoAjkoAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wDiEAA28Wv/////Pz7/v/+/v7+ + /////v7+//////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////v7+/v7+/fz7/v//6NrNjkkJjkkCj0kAjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBiUIAn2Ur+fb0/fz7/f39 + /v7+/v7+/////////////////////////v7+/v7+/v7+/v7+/f38/fv6/fz7/fz6/Pv6/fz8/fz8/v7/ + /////////////////Pz66dzPza6Qq3dGkE0Mhj0AikMAj0sCj0sCj0oAjkkAjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + kEwChz4AsIJS/v7//Pv7/v7+/v7+/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v7+/////Pv6 + ////v5lzhTwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkgAkEwBhDoAxqSC/////Pv6/v7+/v79/v7+/v7+/////////////////v7+/////v7+/v7+ + /////////////////////////////v788+3l5NTE07icuY5moWgvj0sIhz4AiUIAj0oAkE0FkU0Dj0sC + kEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsBkEsB + kEsBkEsBkEsBkEsBkEsBkEsBj0sBkEwCjEgBkE4O7eTa/v7+/fz8/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsmVsgikMBj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkkAjEYBkEwN7ePY/v7+/fz7/v7+/f39//// + /v7+/////////////v7+/v7+/f38/v//28ayxqSAy6uKxKF6vJNssoReqHNEmVwlkEwKhjwAgTQAgDQA + hDoAiEAAikMAiUIAiEEAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAA + iEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiEAAiUIAgjYAx6WD/////Pv6 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////v7+/v7+/Pv7////1r2khz4A + j0sCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + kEwBhjwAsYFR/////fz7/v79/v7+/v7+/////////////////v7+/v7+/v39/v7+4M27za+O0bWW0LOU + z7OV0LOZ0bac07mg1ryk2MCo2cKr2cKs2MGq2MCp18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co18Co + 18Co18Co2MCo1r+n2MGq+vf0/v39/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/v7+/Pv6/v39rHpIhz4Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0oBiUEA3May/////Pv6/////f39/v7+/v7+//////// + /v7+/////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7//v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7/v7+6d3RjUkJjUgBj0oAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBikIAnWIn + +PXx/fz8/f39///+/v7+/////////////////v7+/////////v39/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz8/fz7+/n3+/n3+/n3+/n3+/n3+/n3 + +/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3+/n3/Pr4/fz7/fz8 + /fz8/v7+/////v7+/////v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/Pv7////wZx2hDsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAxKF8/////Pv6/v7+/v7+/v7+/v7+/////v7+/////v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v///v7+/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/f39/f389/Ltm14iiUIAj0oBjkkAjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkoAjUgCkE0N7OHW/v7+/f38 + /v7+/v7+/////v7+//////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/f79/f39+vj20LSYzrCSz7GUzrGTz7GTz7GTz7GTz7GTz7GTz7GT + z7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTz7GTzrGTzrGTza+S0LSY+vj1/v7+/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v7//Pz7 + ////2cKriD8Aj0sCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAkEwChz8Ar35O/v7+/fz8/v7+/v7+/v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/v7+/fz7////yaiIgDMAhz0A + hTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhTsAhjsAhTsAhDsAhz4A + fS0AtIdb/f38/Pz8///+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+/v7+/fz7/v//rn1Khz0Aj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sCiEAA2MGq/////Pz7/v///v7+/v7+ + /v7+/////////////////////////////////////////////////////////////////////v7+/v7+ + /v7+/v7+/f38/v797+bdkU8PjUkDkU4Fj0wDkEwDkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0DkE0D + kE0DkE0DkE0DkE0DkEwDkE0DkU4FjEcFmVwe9/Pu/v7+/v38/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7//fz7/v7+69/UjkoL + jUgBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0sCikMAm18j+PXw/f39/f39/v7+/v7+/////v7+//////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/fz7////tIZYhj0AkEwCjkgAjkkAj0oAjkkAjkkA + jkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAjkkAj0oAjkkAjkkAj0sChj0A0rec/////Pv7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/v7+/////Pv6////xKF9hTsAkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAw596/////Pz7/v7+/v7+/v7+//////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////3sq3 + iUIAjkoCj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkA + jkkAj0wBiD8AqHM+/fz7/Pz7/v7+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v3+/v39/fz8+PXxnWIpiUIAj0sBjkkA + jkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkoAjUgBjkoK + 6t7S/v7+/fz8/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + /////////v7+/v7+/f39/f38+vj1oGgviUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkgCjEYH5tjJ/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /v7+/v7+/Pv6////2cStiEAAj0oCjkkAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkgAkEwChz4ArHpH/f38/fz8/v7+/v7+/v7+//////////////////////// + /////////////////////////////////v7+/v7+/v7+/v7+/fz8////y6yNhTwAkEwCjkkAjkkAj0kA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTwAvZRs//// + /Pv7/////v7+/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pv7/v7+r4FQhz0AkEwBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkgAj0kAkEsChz4A17+n/////Pz7 + /v7+/v7+/v7+/v7+/////////////////////////////////////////////////////v7+/v7+/f38 + /v798enfklISjEYBj0oBjkkAjkkAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAj0oBi0QAl1gb9O/p/fz8/v38/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fz8 + /v7+7ePakE0NjEcBj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAjkkAj0sCikMBml0i9/Pu/f39/f39/v7+/v7+//////////////////////////////////// + /////////////v7+/v7+/v7+/v7+/Pz7////toldhj0AkEwCjkkAjkkAj0oAj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUkAjkkAj0sChTwA0baa/////Pv7/v7+/v7+/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/v7+//7+/Pv6////x6SDhTsAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjUgAjkkAkEwChTwAwZx1/////Pv7//7+/f39/v7+ + /v7+/////////////////////////////////////v7+/////v39/v7+/fz7////4M67ikICj0oCjkoA + jkgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0sBiD8A + pnA8/Pv6/fz7/v7+/v7+/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+fbznmMq + iEEAj0sBj0kAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkoAjUkCjUgI59rM/////fz8//7+/f39/////v7+/////////////////////////////////////v7+ + /v7+/v39/f38+vj1oWgwiUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QG5dXF/////fz7/v7//v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////v7+/v///Pz7////3cm1iEAAjkoCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChz8AqndD/fz7/fz7/v7+/v7+/v7+//////////// + /////////////////////v7+/v7+/v79/v7+/Pz7////y6uMhTwAkEwCjkkAjkkAjkoAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwChTsAu5Fn/////Pz7/v7//v7+ + //7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/v7+/v7+/Pz7////s4RVhjwAkEwCjkgA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAj0wChz4A + 1bui/////Pz7/v7+/f3+/v7+/v7+/////////////////////v7+/////f39/v7+/f38/v398Ojfk1ES + jUYBj0oBjkkAjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + j0oBi0UBllYa8+zl/fz9/v38/v7+/v7+/v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7//f38/v797+XckE0OjEYAj0oAjUgAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBmVoe9vHr/f39/f39///+/f39/////v7+//////////////// + /////v7+/v7+/v7+/Pz7////tYldhj0AkEwCjkkAjkkAj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oAjUkAjkkAj0wChTsA0bWZ/////Pv6/v7+/v7+/v7+//7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/v7+/v7+/Pz7////yKiGhDoAkEwDjkkAjkkAj0oAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChjwAv5dw/////Pv6 + /v7+/v7+/v7+/////////////////v7+/v7+/v7+///+/fz7////4dC/ikMDj0oCjkkAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiD8ApW85/Pv5/fz7 + /v79/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v39 + /fz8+/j1oGYtiUEAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkoAjkkCjEcG5tjK/////fv7//7+/v7+/v7+//7+/////////////v79/v7+/f39/fz8 + +/r4o2oziUAAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAjkkCi0UF5NTE/////fz8/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////v7+/v7+/fz7////3su4iUEBj0sCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjUkAkEwChz8AqHRA/f38/fz7/f39/v7+/v7+ + /v///////v7+/v7+/v7+/v/+/Pv7////za+RhTwAkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkE0ChjwAu5Jo/////Pz7/v7+/v7+/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/fz7////tIdZ + hjwAkEwCjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkA + jkkAj0wChjwA0rec/////Pv6/v7+/f7+//7+/v7+/////v7+/v7+/f38/v7+8erilFITjEYBj0oBjkkA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UAl1YZ + 8+3m/f39/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8/v398Offk1ISjEcBj0oAjUkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBi0QBl1ga9O7n/f38/f39/v7+/v7+/////v7+/v7+ + /v7+/Pv6////t4tfhjwAkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oAjkkAjkkAkEwChz4A0LWZ/////Pz7/v7//v7+/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v7+/Pv7////zK2Ohj0AkEwDjkkA + jkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAjkgAkEwChjwA + u5Nq/////Pv6/v7+/v7+/v7+/v7+/v7+/Pz7////4dC+ikMCj0oCjkkAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0wCiEAAp3E7/Pv5/fz7/v79/v7//v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/////v7+/fz7+/j2o2sziUEAj0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkAjkkAjkoAjkkCjEcG5dbH/////Pz7/v7+/v7+/v7+/v39/fz8+/n3pG00iUEA + j0sBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0kA + jkkCikQE49PC/v7//fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////4c+9iUICj0oCj0kAjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAAp3E7/Pv5/fz8 + /v79/v7+/v7+/Pv6////zK+Qhj0AkEwCjkkAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgAkE0ChTwAuY9j/////Pv6/v7+/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/v7+/v7+ + /Pv6////t4xghjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAjkkAjkkAjkkAkEwChj4Az7OX/////Pv7/v7+/f38/f398erilFQVi0YBj0oBjkkAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjkkAj0oBi0UBlVUW8+zl/v39/f39 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/f38/v7+8+zllFQVi0UBj0oAjkkAjkkAjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAj0sBi0UAlVUX8uzk/v39/fz8/Pz7//// + t4xhhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oA + jkgAjkkAj0wChjwA0LOX/////fz7/////v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v///fv7////zrGU + hjwAj0wCjkkAjUkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChTwAuI5k////+/r5////4tHAiUIDjkoCj0oAjUkAjkoAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAj0wCiUAApW84/Pv6/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///v7+/f38+/r4pG02iEAAj0wBjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0kAjkoCikMD4tC//v79+vj1pG02hz8AkEsBjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCi0QF49TD + /////fz8//7//v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/////fz8////49TEi0UFjkkCj0oA + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sBiEAA + oWkx////zrGThTsAj0sCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkgAkEwChj0AupBl/////fz8/v///v7+/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v7+/v/+/fz8////uZBkhj0AkE0CjkgAjUkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAjkkAjkkAj0sAiEAAwZ12m18iikIAj0oBjkkAjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oAjEYBlVYX8uzl/v79/v39/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/f39/v398+zmllYXjEYBj0oBjkkAjkkAjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkAjkkAjkkAjkkAikMAjEYAjkkA + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkgAjkkAkEwC + hj0Az7SX/////fz7//7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//7+ + /fz7////0bWZhz0Aj0wCjkkAjUgAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBjkoAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAjkkAjkkAj0wCiEAApW86/Pv5/fz8/v7+//7+/v7+//7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+//7+/v7+/fz8/fz7p3I+iD8Aj0wCjkkAjkkAjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAjkkAj0kCikQF49PD/////Pz8//7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+//7+/fz8////5dbH + jEYHjkoCj0oAjkkAj0kAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oA + jkkAjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAkEwChj0AuI1i/////fv8/v/+/v7+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/v7+/v///fz7////vJRqhjwAkEwCjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkAjUkAj0oBjEUBlFQW8uri/v7+/f39/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/f39/f399O7ol1kci0QBj0sB + jkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjUgAjkkAj0wChj0AzbCT//// + /Pz8/v7//v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////07mfhj0Aj0wCjkkAjUgAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkAjkkAkEwCiEAAomw0/Pr4/f39/v7+/v7+/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////v7+/v7+/fz8/fz8qHNAhz8AkEwCjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0kAjkkAj0kAjkkCiUIC4dC+/////fz7/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz8////5tjJi0YFjUgCj0oAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgAkEwChTwA + t4tf/////fz7/v7+/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/v7+/fz7////vZZuhTsAkE0CjkkAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjkkAjkkAj0oBi0YBlFMT8eri/v7+/f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/f399vHs + mVseikQAkEsBjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkgAjkkAkEwChj0Aza+Q/////Pv6/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/Pz7////1Luhhz4AkEwCjkkAjkkAj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkA + j0sAiEAAo2w0/Pr4/fz8/f39/v7+/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v7+/v79/fz7/f38qndDhz8AkEsB + jkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAjkkAjkkAjkkAjkkBi0QD4c+9/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz7/v7+6NvNjUkIjUgBj0kAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEwBhTsAt4xf/////Pv6 + /v7+/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/Pv6////wZt2hTsAkEwBjkkAjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jkkAjkkAj0oAi0UAlFIT8eri/v39/fz8/v7+/f39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/v7+ + /f38/fz89vHtmVsfikMAj0sAjkkAjkkAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAkEsChDoAy6uN/////Pv6/v7+/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/f3+/v7+/Pv7////1r6lhj0Aj0oBjkkAjUkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkAj0sAiEAAoWkx + +/n3/fz8/f39/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/v39/fz7/v7+ + rXtJhj0AkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjkkAj0oBjkoCiEEA4M68/////fz7/v7+/v39/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f39/v7+/fz7/v7+69/SjkgJi0UAjkgAjUcAjUgAjUgAjUgAjUgAjUgAjUgAjUgA + jUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUgAjUcAjUcAjkoAhDkAtYlb/////Pz6/f7+/v7+/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/v39/v7+/Pz7////xKF9jEcSlVQW + k1IUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUlFIUk1IUlFMV + kU8TmVoj8ejg/v39/fz7/v7//f39/v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v///f39/f38/Pv67+bd8Ofe8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off8Off + 8Off8Off8Off8Off8Off8Off8Off8Off7uXd9O7o/////f39/v7+/v7+/v7+//7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v////7+/v7+/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v39/v7+ + ///+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/v////// + /////v7+/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v79/////////v7+/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAEAAAACAAABABgAAAAAAAAgAwAAAAAAAAAAAAAA + AAAAAAAA//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////v7+/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v79/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////9/Lt9/Pu + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt/v7+/v79/v7+/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v79/v799/Ls9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt + 9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Lt9/Pt9/Lt/v39pm80omkso2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2svnmMrzrGR/////fz7//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + 1bygnGAqo2svo2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2oto2ot + o2oto2oto2oto2oto2oto2oto2svnWEruY9i/fz8wJpwkUwEiUIAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0UAiUAAlVQT7uTZ + /v39/fz8/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f38/v7+9O3nmFkViD8Ai0UAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QAi0QA + i0QAi0QAikMAi0MA3sq1/v7+/fz8wJhviD8AkU0Fj0sCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkU0EiD8AuItb/////f38/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////vZNniD8AkU0EkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsC + kEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCkEsCj0sCkU4EiUAAuY9h + /////Pn4/v7+9e/pnF8ei0UAj0oBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3cix/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////Pz7////49G/j0oHjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYBl1cU8urj/v39/fv6+vf0//// + 1LqfikIAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAoWcq9vLt/fz7/v39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /f38+/n3p3A0iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEAzrCQ/////fz7/v7+/fz7/fz7+/n3q3hBiUAAkEsC + j0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAyKaB/////fz7/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/Pz7////z7GRiUEAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikIApnA0/fz7/v39/v7+/////////f38////6NrMkEwHjUgBjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + jUgBlFIO7uTa/////f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz8/v398OfellYTjEYBj0oBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgB + jUYA4tG+/////fz7/////v7+/v7+/////fz8////wJpvhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCiD8As4RR/fz7 + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v38////uY9ghz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Fk/////f38/v7+ + /v7+/////////v7+/fz8/v389e/pnmMmi0MBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB3Mav/////fz8/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/Pz8////4tG+jUgCjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAmFkW9e/o/v7+/f38//////////////////// + /////fv6////17+miUEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAoWgp+vfz/v7+/v79//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/fz8+/j2pW4z + iUAAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0oBiUEA0ria/////fz8/v7+/v7+/////////////////v7+/v39/v39/v/+ + sH9LiEAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoAj0sCiD4Ax6Z//////fv6/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////7+/v7//fz8////yqqHiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sCiUIAqXU7/fz7/v39/v39/////////////////////////////v7+/fz7/v7+6t3PkU4NjkgCjkoB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oAjUcBkU0N7ODU/////f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v///f38/v7+7+bdlVMOjEYBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkBjUgB5dXG//// + /f38/////v7+//////////////////////////////7//fz7////w551iD4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + hz4Ar35J/v39/fz8/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v39/fz7////tolYhz4Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiEAAvZZq/////f37/v7+/v7+//////// + /////////////////////v7+/////f39/v7+9vHsnmMki0QAj0sAj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCi0QB2cKo//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 3su3jUcDjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmlsZ9O7n/v79/f38//////////////////////////////// + /////////v7+/v7+/fz6////2cGpikIBj0oDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0MAn2Qn+PTw/v79/f38/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/fz8+vf0omosiUEAj0oBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCiD8A0reZ/////fz7/////v7+//////////////////////////////////////////// + /v7+/fz7/Pv6sH9KiD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Aw594/////fz7//7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/Pz7////yqmGiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAq3hA + /Pz6/f38/v39//7+/////////////////////////////////////////////v7+/////f37////7OLW + k1EOjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkoBjUcCklAO6t7Q/v7+/fz7/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////f39//7/7ePYk1ENjUcAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcBj0sG6NrL/////fz8/v///v7+ + /////////////////////////////////////////////////v7+/v7+/fz7////xqR+hz4Aj0sCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsBiUEAsIFN/v79/v39/v3+/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /Pz7/v7+s4RQiEAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBhz4AwZty/////fz8/v7///7+//////////////////// + /////////////////////////////////////v7//v39/v399/PuoWgrikIAj0oBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iEAA176j/////fz7//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz8////2sSti0QBjkoC + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sBi0QAm14d9vHr/v79/f39//////////////////////////////////////////// + ///////////////////////+/////fz8////3MawikMBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCi0QBnGAi9O7n/v38 + /fz8/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/v39+fbzoGcoikIAj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEA1buf/////fz8/v7+/v7+//////////////////////////////////////////////////////// + /////////v7+/f79/fz8/f39soNPhz4Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz0AwZxz/////f38/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/Pz7////x6V/iD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAArHpD/v7+/v38/v7+ + /////////////////////////////////////////////////////////////////////////////v7+ + /f38/v7+69/SlFIPjUcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkgBkEwG6dvN/////fz8//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7/v397ODUlFMRjUcCj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBkE0I6NvM//7+/fz8/////v7+//////////// + /////////////////////////////////////////////////////////////////////fz7////yKaB + hz0AkEwDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sCiUEArXtG/Pv5/fz7/v39/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v///f38////sH9K + hz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0wChz8AwJlv/////f38/v7+/v7+//////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f39/f389/Puomgti0MAj0sCj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0sDiD8A1r2i/////fz7/////v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////18ClikMAj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0oBi0QAnmIj9vHs/v39/v39//////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8////3sq0jEYAjkoCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAi0UA + nWAf9vHs/v7+/v79//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/f38/f389vHsn2Qli0QBj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCikIA2MGo//// + /fz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////////////////fz8////tYhWhz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8AwJpw/v7+/fz7 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/////fz7////xKF6hz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wBiEAAsH9L/////f38/v79/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7/v797uXblVQVjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCjkkG59jJ/////f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v///f38//// + 6t3PkU4IjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBkU4J6t7Q/v7+/fz8//////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz7////yqqGiEAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUEAqnY9/Pr4/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v39/fz7/fz7r39KiUEAj0sCj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwChz0Aw553/////fz8/v7+/v7+//////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f39/v79+/n3omor + ikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0sCiEAA0raY/////fz6/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7//fz7////1ryiiUIAj0oCjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMBnmMm + +PTw/v39/f39//////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/fz7////38u2i0QEjkoDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sBjEUAmVwb9e/p/v7+/f38//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////f38/v7+9vHsnF8eikMAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2MCl/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/fz8/v7+t4pZiD8AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4A + vpVq/////fz7/v/+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /Pz7////wJpwhz0Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAr39J/v7+/v39/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////f39////8urillcTjEYAj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUgCjkgE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////fz8////59nLkEsHjUgB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoBjEcBk1AN7OLW/v///fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/Pz7////za6OiEAAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBiUEAqnY8/f38/v39/v3+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////f39/fz8/fz7rHlCiUEAkEsBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8AyKaB/////fz7/v///v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v79 + /fz7+fXypW0xiUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEA0bWX/////fz8/////v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz7////z7OTikIAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBikMAn2Yl+vf0/v7+/f39 + //7///////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/////fz7////4tG+jEYC + jkoBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oBjEUCl1gY8+vk/v79/fz7//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f38////7eLWlFEOjEcBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkoBi0QA28av/////fz7/v7//v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v79/fz7/v7+uY5fiEAAj0wCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsCiD8Auo9h/////fz8/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/v79/fz8+/r4rHlE + iUEAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiD8As4RR/f39/v39/v7+///+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7//f38/v7+7+fdl1cUjEYBjkoAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjkgB + 4tC+/////f38/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v///v7+/Pz7////wp51hz4Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjUcBk1EN7+Xb/////f39/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////fz8////z7GRhz4Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAp3E4/Pv5/v38/v39 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+//7+/fz7////3ciwjEUAjkkBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0Ax6WA//// + /fz7/v7+/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/f39/fz7+vj1qHI4iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAkEsCiD8Az7GR/////f38/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/////fv7////7OHUlVQWjEYBj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikMAomks+PPv/v39/v79//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + ////5NPBj0oGjkgBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBjEYAl1gU8uri/v7+/fz8//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7//f38////8uvj + n2QoiUEAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oCi0QB38u2/////fz7/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////f38////u5Jlhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8AupBi/////fz8/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8/v7/+PTvq3dAiD8AkEwBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wCiEAAt4pa/v7+/f38/v79/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz8/v398erimVwcjEUBj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkBjUgE4M66/////fz7/////v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////fz8////+vj1rHpFiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjUcBlVQR + 7+bd/v7+/f39//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz7////0LSUiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIAo2sv + +/n4/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v39////+/n2tYhXhz4Aj0wDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChj0AyquI/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/fz8/fz7qHM5iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4Ay6uJ/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+///+/v7+/fz7////+vf0 + rXtIikIAj0sDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sBikIAo2wx+PXx/f38/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////Pz7////4tLAjkgHjUgCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBllYS8Oje/v7+/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////fv7////9/Puq3hChz4Aj0sBj0oAj0kA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkoBi0UA4M24/////fz7//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/Pz6 + ////vpZqiD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AuItc/////fz8/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////7+/////v7+/fz7////7+XaomoxiEAAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwC + hz4AtolZ/////fz8/v3+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////f39/v7+9vHsnGAdi0MA + j0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAjkkCjEYB38y3/////fz8/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /v///v39/Pz7////38y3mFkciUAAkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEYDllYX7+bc/v7+/f38 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/fz7////1LqeiUEBj0sDjkoAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoA + j0sBikIApGww+vj1/v39/f39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////////Pv6////////y6yJ + j0sEikMAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiD8Azq+O/////fz7//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v39/fz7/Pr5qnY9iD8Aj0wCj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzK2M + /////Pz7/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////v7+/fz7////8+zks4NTiUEAjUkAkEsCjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiUEApnA0/fv6/v39/f79/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////5tjJkUwIjkgAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYBlFIP7uTa/v7+/f38//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/////v7+/fz7////////3Mixm14hiEAAj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjkkCjkkG4c+7/////fz7/v7+/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //7+/v7+/fz7////v5lviD8Aj0sDjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAAtIZV/////v39/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+///+/v39 + /fz8////+PTvvpZujUgDikQAkEwDj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AuI1d//// + /fz7/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////7+/f38/f38 + 9O7nm10ci0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA3ciy/////fz8/////v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////v7+/fz7////////28aunmImhz4A + jkkAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYAl1gW8+vk///+/f38/////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7//Pz7////1LqdikIAj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0oBikMAoWgp+fby/f39/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/////v7+/fz7/v//////8OjdtolbjEUAikMAkEwCj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAzrGR/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v39/fz7/f38rn1HiD8Aj0sCj0kAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0sBiD8AyKiE/////fz8/v7+/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////f38////////+/j2y62LlVQSiD8AjkoBj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0oBiUEApW4z+vj1/v39/v39//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7/v7+6d3Qkk8LjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUcBkk8J7eTZ + /v7+/f38/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/f38/f39/////Pr4 + 2sSsomktiD8AjEcAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAjkkAjkgD + 49PB/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f38////w552hz4Aj0wBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD4As4VS/////f39/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/////f38/v7+////////38y3qXU+iUEAikMAkEsCj0sB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz4AvJNm/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////f39/f389vHrnGAgikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjEYA3Mex/////fz7/v7+/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////////v39/fz8/v7/////////4tC9rntHjUgCiUIAkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oBjEUBmVsZ9O7m/v7+/f38//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/Pz7//// + 2MCnikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0oAi0MAnmMj+ffz/v39/f38//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v7+/v7+/v39/fv6//// + /////fz82MGnrXtIjUYAiUEAjkkAkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sCikEA0bWX/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39////r35IiUAAj0wC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiEAAxKF6/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////v7+/f38/fz6/v7/////////8uvj0bWXomktjEUAiD4A + j0oBkEsBj0oAjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsC + iUEAqHQ7+/j2/fz8/v39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////fz7/v7+6NvNkEwIjUgBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jUgBkk8K7ODV/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////v7+/v7+/v7+/v39/v39/////////f3859jKvZVqnF8hiD8Ai0QAj0oAkEwEj0oAjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBjkkE5dXE/////fz7 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/Pz7////w551iD4Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAsIBL//// + /f38/v7+///+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/////v7+/fz8/fz6//////// + ////////69/T0baYqndBjkgAiUAAi0QAkEwDj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AvZRo/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39+vbzn2UlikMAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCi0QA2sOq/////fz7/v7//v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////v7+/v7+/v79/v38/v38/f38/v///////////v398Ojf0bWXsYBNlVUShz0A + ikIAjkkAkEwCj0sCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oBi0UBmlsc8eri/v39/fz8/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////Pz7////28avi0MBj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikMAnmIj+PXx/v39/f38///+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v79/f38 + /fz7/fz6/v7+/////////////////Pr55dXDyaqHr31Lkk8HikMAiUEAjUYAkEwDj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBiUEA1Lqd/////fv6//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/f79/fz7/f38 + sYJOiEAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AxKB5/////fz8/v///v7+//////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////v7+/v39 + /v39/v39/v39/v39/v39/v38/v38/fz8/fz8/f38/f38/v38/v38/v39////////////////////9vDq + 6d3P0baYtIZVn2Unkk8HhjsAiUAAjkgAj0sBkEsCj0sBj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUAArHpD/f38 + /v39/v39/v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz8////7OHWkk8KjUcAjkoA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAjUgBkU4J6NrM/////fz8//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////9O3l49PB1Lqew552soNRnmIhikIAikIAiUEAikIA + jUgAkE0EkEwCj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoBjUgCj0wK59nK/////fz7/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////xqR+hz4AkEwCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iUEArnxG/v7+/f38/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz6+PXv+fXy+fXy+fXy+fbz9vDr8Oje8Oje6dzO + 5NXE2MCmzbCPv5dusIBMn2UnmlwZk1EJjEUAhz0AiUEAjUcAkEwEkE0EkU0EkU0EkEwDj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sCj0sC + j0sCj0sCj0sCj0sCj0sCj0sCj0sBkE0Ehz4Av5ht/v7+/fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////+/f39/f389/PuoGYnikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAA1r2i//// + /Pz7/////v7+//////////////////////////////////////////////////////////////////// + /////////////////fz7////4M25l1YeoGYnn2MknmMkn2QmmVsYkUwEkU0FhTkAgzcAhDgAhDkAhDkA + hToAhToAhz0AiEAAikIAi0UAi0QAikIAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEAiUEA + iUEAiUEAikIAhz0Am1wc9O7o/v7+/f39/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+//7//f38////2sSsi0QAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0UBnWEg9fDr/v39/f39//////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////6NrMtIZYupFjuY9huo9huY9gupBjvJNnvJNnvpdsv5dtv5dtv5dsvpdsvpdsvpdsvpZrvpZr + vpVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVq + vZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvZVqvpdsuI1g + 4M24/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////+ + /v7+/fz7////tIZUiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AwZxy/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7/v397ePY + llURjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkgBkEsF6NrN/v7+/fz8/////v7+//////////////////////////// + /////////////////////////////////////////////////v7+/////v79/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7 + /fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/fz7/v39/v7+/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/Pv7////yaiEiD8Aj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEsCiUEArXpD/v7//f39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////f39/v38+vf0oWgrikIAj0sBj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oB + ikMA1bqf/////fz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz7////3MiyjEYBjkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0QAmlwa9O7n/v39 + /f38/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39////tIdViD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD4Avpds/////f38/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /fz8/v7+7+XblFIOjEYBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgBjkoD5dbF/v7//fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////v7+/v38/v39 + /v38/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39/v39 + /v39/v39/v39/v39/v39/v39/////////v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz8////y6uI + iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBiUEAq3c//fz7/v38/f79//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////f39/v39/Pv6pGwuikEAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sCikIA1Lqd/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7++fbzqXY9nmImoGYnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUn + oGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnoGUnn2UnoGUnnmMm4c+8//// + /fz8//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/////fz7////4tC9jUgEjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QA + mVsZ8+zl/v38/fz8//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/fz7////xaJ8hToAi0QAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIA + ikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAikIAi0QAhDoAqHI6+/n3/v39/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/fz8////uIxciUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AvpZs/////fz7 + /v7+//7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz7/v7+ + 7ODUk1EPjUcCkEwDj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sBj0sB + j0sBj0sBj0sBj0sBj0sBj0sCkEsCjkkDkk4L6t7Q/////fz7//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f39/v7+8enhllYQjUYAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkkE49PB/////fz8/v///v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/f38////soJOiEAAj0sBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0wBiD8Awp10/////fz8/v7+/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//// + /Pz7////za+OikEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sDiEAAp3I3/Pr4/f38/v39/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/Pz7////2cOri0QAj0oBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0UAnWAf + 9vHs/v79/fz8//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/f39/f38+/n3pm8z + iUEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0oCikIA0LOU/////fz8/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/f38/f38+PPvoGcqi0QBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiUEA1r2i/////fz7/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////fz7////4tC9jkkDjkkBjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAi0YAl1gT8+3l/v7+/f39//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////x6V/iD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiEAArXtF/f38/f38/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz8////vJJmiD4AkEwCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAA + upFj/////fz8/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f38/v7+6t7RklALjUcB + jkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0kAjkgBkU0I6NrM/////f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7//fz8/v798eril1kVi0QAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgBj0oG5NPC/////fz7 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v79/f38/f38soNQiUEAj0sCj0kAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsC + hz4AwZty/////fz8/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////+/v///f37////0bWXiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApm8z/fz6/f38/f39//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/////fz7////3MexikMAj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MBnGEj9vLt/v39/f38 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////f39 + /f38/Pr4qHM6iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oCiUEAz7KS/////fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v39/f38+PXxomotikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUIA1r2i/////fz7/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz7////49PBjUgC + jkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjEYBllYU8ejf/v79/f38/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/v7+/fz7////y6yJ + hz8Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAkEsBiD8ArXpD/fz7/v38/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/fz8////vJNmhz8Aj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEsChz4At4ta/////fz8/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39////7ePZlFIPjEYAj0oAj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkoAjUgCkEwL6dzO/////fz7//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8/v398+vkmFoXi0UAj0oBj0kAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkkBjUcD + 38y3/////fz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/f38tYdVhz8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AwZtx//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v7+/fz8////0reaikIAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApGww+/j2/v38/f39 + /////v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/v7+/fz6////3su1jEUEjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0QAnGAf9fDq/v79/f39//7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v79/v39/f39q3c+iUEAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiD8AzKyK/////Pz7/v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v/+/f39/v79 + +fb0o2otikMAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCikIA07eb/////fz7/v7+/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/////fz8 + /v7/59fIjkoEjUkBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBi0YBl1cV7+bc/f39/fz7/v7+/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+//7//fv7////yqmGiD8AkEwCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAj0sBiEAAqXU7/Pv6/f38/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////v5dtiD4A + kEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBiD8Atotb/////fz7/v7+///+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////7+/fz8/v7+7uTalVQUjUcCj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkCj0oK + 5tbG/////fz8/////v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////f39/v399O7om10ci0UBj0oBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAj0oBjUcB4M25/////f38/v7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/////f38////tolXiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD4Avpdr/////fz7/v39/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/////fz8////07ibiUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCikIAomos + +PTw/fz8/f39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7////3ciyikMAj0oCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0UAmlsY9O7n/v7+/v39/v////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/f39/f38/v79q3c/iUAAj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwChz4AyaiF/////fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/f39/f38+fXxomoviUEA + kEwCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0sCiUAA07mc/////fz7//////7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////fz8////6NvMkEwHjUgBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjUcAk1EL7uTa/////f39//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////y6uJhz8Aj0sBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sB + iUAAq3dA/Pr4/fz7/f39/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v///fz7 + ////wpxziD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8AtIZU/v39/fz7/v39/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38/v7+7uPYlFMPjUcBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkgBj0oC5dbG/////fz7 + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////+/fz8/v399/LunGAfi0MA + j0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0kBjEUC3cm0/////fz7/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v79/f38/v7+tYhYiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz0AvpZr/////fz8/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v///fz7////17+likMAj0oBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + j0oBikMAomgq+vf0/f39/v7+//////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////Pz7////4M24 + i0UAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0sBi0QBm10f8+3m/f38/fz7/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7+/v79/f39////rnxGiUAAkEsCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiEAAyKWB + /////Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v79/f38+PTxomkti0MAj0sBjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiUEA0rea/////fz7/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7//fz7////6t3QkE0IjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBkk8M69/T/v7+/fz7//// + /v7+//////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yKhz4Aj0sCjkoAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAAqnU9/Pz7 + /v38/v39/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7+/fz7////wZtyhz8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAsoJP/////f38/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////f38/v7+8enhllYSjUcBj0oBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUgCj0sJ5dbG//7+/Pz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////f38/v79 + +PTwnGAfi0QAj0sAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoCi0QA28St/////Pz7/v7+/v7+//////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/f38 + ////uI1diD8AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz8AvpZq/////fz7/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/fz7////2sSsi0UAj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0kAj0sCikMAnmQl9/Lt/f38/f39/////v7+//////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////4tC+jUcCjkkBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0oBi0QAmVsZ9O3m/v79/f38/////v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/f38////sYFMiD8Aj0sBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + kEwChz4AxaJ8/////fz7/v7+//////////////////////////////////////////////////////// + ///////////////////////////////////+/f39/f39+/n3pGwwikEAj0sBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sCiUAA + 07mb/////Pz7/v7+/v7+//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz7/v7+7OHUkU0HjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjUcBk1AO6+DU + /v7+/Pz7/v7+/v7+//////////////////////////////////////////////////////////////// + /////////////v7+/v///f38////za+OiD8Aj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsCiUEAq3c+/fz7/fz8/f79//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/v7+/fz8////xqR/iD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AsIBM/v79/fz7/v7+//// + //////////////////////////////////////////////////////////////////////////////7/ + /fz8/v7+8erillYSjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkBjkkF5tfH/////fz8/////v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////f39/f39+PXwn2Qli0MAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBikMA2cKp/////fz8/v7///////////////// + /////////////////////////////////////////////////////////v7+/v7+/fz8////uI1fiD8A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0wDhz4AvpVq/////Pz7/v7+/v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/////fz8//// + 2sWtikEAj0oBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oBi0MAnWAg9vDq/f38/f38/v7+//////////////////////////// + /////////////////////////////////////////////fz7////4tC9jUcAjkkBjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jEQAm10b9O/p/v7+/f38//////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v7+/v7+/v39/v7+soJPiUAAkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sDhz8Aw552/////fz7/v7+//7+//////////////////////////////////////// + /////////////////////v7+/f39/f38/Pr4pW8yikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUAA07ib/////fz7 + /v7//v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////f38/v7+7OHWklAMjUcBj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + jUgAklAK6dzO/////f38/v////////////////////////////////////////////////////////// + /v7+/////fz7////za+OiUEAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sCiEAAqXY9+/n3/fz7/v39///+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////fz8////yamFiD8Aj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0wCiEAArXpD/Pv6 + /fz6/v39/v7+/////////////////////////////////////////////////////////f39/v7+8eng + lVMPjEYAj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkkBkEwF5tjJ/////f38/v///v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////v7+/f39/v39+fXyomkrikMAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0sDikMC17+l/////fz7/////v7+ + /////////////////////////////////////////////v7+/v7+/f38////uI1diEAAkEsDjkkAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkAkEwBiD8Au5Jl/////fz8/v7+//7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz8////3ciyi0QAjkoCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBi0QAnmIi9vLt/v7+/v7+//////////////////// + /////////////////////////v7+/////fz8////4tC9jkgEjkkBj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBmFoX8uvj + /v39/fz8/////v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v7+/fz8//// + tYdViD8AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wDhz4AwZtx/////fz7/v7+/v7+//////////////////////////// + /////////////v7+/v39/Pr4pG0vikMAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiEAAz7KT/////fz7/v7+/v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////fz7/v7+7uTalVQQjEYBj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oBjUgCkU4N59jI/////fz8/////v7+/////////////////////////////v7+/v7+/fz8 + ////za6NiUAAj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUEApm8z/Pv5/v39/f39//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/v7+/fz7////yaiDhz4Aj0sCjkkAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sB + iUAAqnY9/fz8/f38/v7+/////////////////////////////v7+/////f38/v398enhllcVi0UBj0oB + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkgBjkkD5NTD/////fz8/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////f39/v39+/j2oWgqikIAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiUIA07mb//// + /fz7/v7+/////////////////////////////v7+/f38////t4tahz8AkEsBjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8A + upFj/////fz8/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz7////4M67jEYDjkkCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBi0QBm18g8+3l/v39/f38/v7+/v7+ + /////////////v7+/v7+/Pz7////5NTEjkkEjUkCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAj0oAjEUAllcT8+vk/v39/f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/fz8////uIxciD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsChz0Avpdr/////fz7//////////////////////// + /f39/fz8+/n3p3E4iUEAj0sCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUAA0LSV/////fz7/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8/v7+8Ojf + llYSjEcBj0oAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAjkgBkEwI5dfG/////fz7/v7+/////////////v7+/fz7////0LSWiEAA + kEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkkAj0sBikIAp3A1/Pr5/v39/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v7+/fz7////za2Mhz8AkEsCjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0kAj0sBiEEArHlC+/r4/fz8/v39/v7+/v7+/v7+/f38/v398+zkmVoZi0UBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + jkkBjUcA49LA/////f38/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v38/f39+/n3pG0yikEAj0sCjkoAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sC + iD8A0ria/////fz7//////7+/v7+/fz7////u5Jlhz0Aj0wDjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8Au5Jk/////f38 + /v7+/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/////f38////38y3jUcAjkoBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBmlsb8eng/v79 + /f38/////f38////5NTDjkkEjkkBjkkAj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oBjEUBl1gV8uvk/v79/f38//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////v7+/v7+/fz8////t4xchz4AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD4Au5Jm/////fz7/f39/fz8+/n3 + qXQ6iUIAj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8A0LOU/////fz8/////v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /fz7/v7+8engllYWjEYBj0oBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgD5NTD/////Pr5////0bSXiEAAj0sDjkoAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0kAj0sCikIAp3E3/Pr4/v39/v39/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v7+/////fz8////0baX + iUAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0kAj0sBiUAApnE2+fbz/f388uvjl1cTi0UAj0oAj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkBjkgE5NTD + /////fz8/v////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////v7+/v3+/v39/Pv5p3I4iUEAkEsBjkkA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAj0sCiUAAz7GT////upFjiD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwCiD8Au5Fj/////fz8/v7///7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////fz7////4tG/jUcDjkkCjkoAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0oAi0MA + nWEh1r2ikE0KjkgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEYBl1gX8urj/v7+/f38///+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v/+/Pz7////u5FkiD8AkEwBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAjkkAkU4FjUcAj0oA + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sCiEAA0bWW/////fz7/v7+/v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////f38/v7+8+zlmFkZjEYBj0sBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkgAj0oAjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBikIA + qHI4/Pv5/v39/v7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v7+ + /fz6////0LOTiD8AkEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kCjUcF49G//////f38//// + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39+/r3qnY+ + iUEAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sChz4Au5Nm/v///fz8/v7+/v7+//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/////f38////5tfIjkkIjkkCj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAjkoAj0oAjEYAl1cU8+zl/v7+/v39//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/v7+/fz7////v5huhz4Aj0sCjkkAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kA + kEsChz8Az7KS/////fz7/////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v79/v7+9O7pmlwZi0UAj0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAkEsCikEApnA3+vf0/fz7 + /v39/v7+//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/////fz7////07ibiD8AkEsDj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkoBjEUA38y3/////fz7//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/v39 + /fz7+/n3q3hBiUEAkEsCj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAjkkAj0wChz4AuY1f/////f38/v7+/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////fz8////59jIj0oD + jkkBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oBjEYCl1YV7+Xb/v39/fz7/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////v7+/v7+/f37////vpdthz0Aj0wCj0kAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBhz4Ay6uJ + /////fz8//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v7+/fz8/v399O/om18hi0QBj0oBj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sBiUEApW40+vf0/v39/v39/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////f38////1r2iiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkoAjkkCjEYE4M24/////fz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/v7+/v79/v38/v39rnxIiEAAkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAkEwChz8At4tZ/v7+/fz7/v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+/fz7 + /v7+6NrMkU0LjkgCjkoBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjEYB + llYW7+Xb/v7+/f38/////v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7//fz7////wJpwhz0A + kEwCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0sCiD8Aza6M/////fz7/v7+ + /v7+//////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////f39/v799vLtnWIki0QAj0sBj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAj0sBiUEApG0x+vf0/f38/v7+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7////1r6ii0MAj0oCjkkAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkoAj0kCjEYF38y3/////fz7/////v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/f38/fz8rXtEiUAAj0sBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkA + j0wChz8AuIxc/v7+/fz7/v39/v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////697Skk8MjUgBj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0kAjkoAjUYAllYR8Ofe/v/+ + /v39/v////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v7+/fv6 + ////xKF6iD4AkEsCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wCiD8Ay6uJ/////v38//////7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v79/v7++fXyn2Qli0MA + j0oAjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0kAj0sCiUEApW8z+fby/fz7/f39/v7+//////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/////fz8////2cKqikQAjkoCj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkoAjkkBjEYA4M24/////fz8/v7+//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/v7+/fz7/Pv6sH9LiD8AkEsCj0kAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0wChz4At4pa + /////f38//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38////7OLWkk4KjUgBjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBjEUBl1cV7uXb/v39/Pz8/v7+/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /v7+/////fz8////xaJ8iD8Aj0wCjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiUAAzK2L/////Pz7/v7+//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/v39/fz7 + 9/LtomgsikIAj0sCj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAjkkAj0sBiUIApGww/Pn3/f38/f39//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////fz7////3Mewi0QAj0oB + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkB + jUcE3sq2/////Pz7/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////v7+/v7+/f38////tolXiD8Aj0wBjkkAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEsBiD8AuIxb/////fz8/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////v7+/fz7/v7+7eLWlVMSjUcCj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjUYBllYT8Ojf/v7+/f39/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////fz8////yKaBhz4AkEsBjkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAjkkAj0sBhz8AyaiF/////fz7/v7+/v7+//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /v7+/v39/v39+PTxomktikIAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oBikMAomgq+fXy/v39/f39//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////v7+/fz7//// + 3Mixi0MBjkoCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAj0oBi0MA3ciy//// + /fz8/////v7+//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v7+/fz7/v79tIdVhz4AkEwC + jkkAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAkEwBhz8AtIdV/////f37/v7+/v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////v7+/////f38////7+belVUUjEYBj0oBj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAjkoAjUYBlFMO7uPZ/v7+/fz8//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/v7+/fz7////y6yJiD8Aj0sCjkkAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAjkkAkEwBhz4AyKaD/////fz7/v///v7+//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////v7+/v38+ff0pW4yikEAj0sBj0kAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0sBikIAoWgq + +vf1/f38/f39//7+//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v7+ + /////fz7////4M24jEUFj0kCjkoAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oA + j0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAj0oAjkkAjkkCjEYB3ciy/////fz7/////v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////v7+/v39/fz7/v39 + tolZhz4AkU4FkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwD + kEwDkEwDkEwDkEwDkEwDkEwDkEwDkEwCkU0EiEAAtIVS/////f39/v7+///+//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////v///v39////8OfdlVQQhDoAiD8A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4AiD4A + iD4AiD4AiD4AiD8AhToAkU4K7+Xc/v7+/f38/////v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////7+/////v7+////38y4y6yNzrGQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQ + zrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrCQzrGS + yqqM38u2/////v79/v7+/v7+//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/v7+/v7+/v79//////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v79/v7+ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////f38/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8 + /fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/fz8/f38/v7+/////v7+//////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/LFP_Manager/packages.config b/LFP_Manager/packages.config new file mode 100644 index 0000000..510b29a --- /dev/null +++ b/LFP_Manager/packages.config @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file